MYSQL freedata 外联接

时间:2023-03-09 05:20:13
MYSQL freedata 外联接

主要是解决,不同生产系统里面,有不同的数据库. SQL 又不能夸系统查询表. 只能在一个系统里,可以跨不同的数据库查表.

所以会用映射 .FREEDATA 这种方式,这样A 系统 里的表更新之后,就可以在B系统里被查看SELECT了.

主要是换了 引擎ENGINE , 连接 CONNECTION

ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 CONNECTION='mabao51-mariadb';

示例

CREATE TABLE `trade_goods_onl` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '数据标识ID',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据创建时间',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '数据修改时间',
`is_deleted` tinyint(1) NOT NULL COMMENT '数据是否删除',
`remark` varchar(255) NOT NULL COMMENT '备注',
`trade_onl_id` bigint(20) NOT NULL COMMENT '线上订单ID',
`trade_detail_onl_id` bigint(20) NOT NULL COMMENT '线上订单明细ID',
`trade_ofl_id` bigint(20) NOT NULL COMMENT '线下订单ID',
`trade_detail_ofl_id` bigint(20) NOT NULL COMMENT '线下订单明细ID',
`refund_onl_id` bigint(20) NOT NULL COMMENT '线上退单ID',
`refund_detail_onl_id` bigint(20) NOT NULL COMMENT '线上退单明细ID',
`refund_ofl_id` bigint(20) NOT NULL COMMENT '线下退单ID',
`refund_detail_ofl_id` bigint(20) NOT NULL COMMENT '线下退单明细ID',
`status` smallint(6) NOT NULL COMMENT '状态',
`status_label` varchar(50) NOT NULL COMMENT '状态名称',
`org_id` bigint(20) NOT NULL COMMENT '组织ID 妈宝',
`member_id` bigint(20) NOT NULL COMMENT '会员ID 妈宝',
`goods_id` bigint(20) NOT NULL COMMENT '商品ID',
`goods_id_onl` varchar(100) NOT NULL COMMENT '商品ID 线上',
`goods_id_ofl` varchar(100) NOT NULL COMMENT '商品ID 线下',
`goods_barcode` varchar(50) NOT NULL COMMENT '商品条码',
`goods_name` varchar(255) NOT NULL COMMENT '商品名称',
`deal_price` decimal(18,2) NOT NULL COMMENT '成交价',
`pay_price` decimal(18,2) NOT NULL COMMENT '实付价',
`notice_time` timestamp NULL DEFAULT NULL COMMENT '取货提醒发送时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 CONNECTION='mabao51-mariadb';