如何解决MySQL - 使用外键将行复制到另一个表
我想从该表中复制 1 行:
tableold
-----------
oid (primary key,auto_incremment)
name
age
detail
到这张桌子:
tablenew
------------
nid (primary key,auto_incremment)
fid (foreign key to another table)
name
age
detail
使用此 sql 命令:
INSERT INTO tablenew (tablenew.name,tablenew.age,tablenew.detail)
SELECT tableold.name,tableold.age,tableold.detail
FROM tableold
WHERE tableold.oid = 123;
但我收到错误:
是否可以手动将外键“fid”添加到 sql-Command 中?
*编辑,我添加了 CREATE 表语句:
CREATE TABLE `othertable` (
`fid` int NOT NULL AUTO_INCREMENT,`value1` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`value2` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`value3` longtext CHaraCTER SET utf8 COLLATE utf8_general_ci,`value4` longtext CHaraCTER SET utf8 COLLATE utf8_general_ci,PRIMARY KEY (`fid`),) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8;
CREATE TABLE `tablenew` (
`nid` int NOT NULL AUTO_INCREMENT,`fid` int NOT NULL,`name` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`age` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`detail` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,PRIMARY KEY (`sid`),KEY `fid_fkey` (`fid`),CONSTRAINT `fid_fkey` FOREIGN KEY (`fid`) REFERENCES `othertable` (`fid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
CREATE TABLE `tableold` (
`oid` int NOT NULL AUTO_INCREMENT,`name` varchar(60) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`age` varchar(60) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`detail` varchar(60) CHaraCTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,PRIMARY KEY (`oid`)
) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8;
解决方法
我已经解决了:
INSERT INTO tablenew (tablenew.fid,tablenew.name,tablenew.age,tablenew.detail)
SELECT 'value',tableold.name,tableold.age,tableold.detail
FROM tableold
WHERE tableold.oid = value;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。