Table_A
+----------+-----------------------------+
| Table_ID | Unique |
| column1 | |
| column2 | |
| records | Auto increment| Primary Key |
+----------+-----------------------------+
CREATE TABLE `Table_A` (
`records` int(11) NOT NULL AUTO_INCREMENT,
`column1` varchar(45) DEFAULT NULL,
`column2` varchar(45) DEFAULT NULL,
`Table_ID` int(11) DEFAULT NULL,
PRIMARY KEY (`records`),
UNIQUE KEY `table_ID_UNIQUE` (`Table_ID`)
)
Table_B
+----------+-----------------------------+
| Table_ID | Unique |
| column1 | |
| records | Auto increment| Primary Key |
+----------+-----------------------------+
我需要将column1
中的Table_B
插入Table_A
,或者如果Table_ID
匹配则更新。
请注意records
表之间没有任何关系
请帮忙吗?
答案 0 :(得分:1)
你可以使用两个背靠背语句来完成这个,第一个插入数据(如果不存在),第二个更新数据(如果你刚刚插入它将复制工作,但它没有伤害)。如下面的代码所示:
insert into Table_A(Table_ID, column1) select Table_ID, column1 from Table_B where not exists (select * from Table_A where Table_ID=Table_B.Table_ID);
update Table_A
inner join Table_B
on Table_A.Table_ID=Table_B.Table_ID
set Table_A.column1=Table_B.column1;

答案 1 :(得分:0)
您可以使用MySQL ON DUPLICATE KEY UPDATE
的功能。
有关更具体的植入要求,请参阅MySQL Manual,但这是一个简单的摘录。
INSERT INTO table_b (table_id, column1) VALUES (1, '')
ON DUPLICATE KEY UPDATE;