我正在使用InnoDB。我的表结构如下:
CREATE TABLE `generic_part_name` (
`ID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`ID_Lang` tinyint(3) unsigned NOT NULL,
`Name` varchar(250) NOT NULL,
PRIMARY KEY (`ID`,`ID_Lang`),
UNIQUE KEY `Name_Lang_UNIQUE` (`Name`,`ID_Lang`),
) ENGINE=InnoDB AUTO_INCREMENT=4600 DEFAULT CHARSET=utf8;
正如您所看到的,我使用复合主键,键的一部分是自动增量列。现在,如果另一个表中存在条件,我想阻止自动增量并使用现有ID作为密钥对ID-ID_Lang。
例如,如果我有记录
ID:1 ID_Lang:1名称:Cat
ID:2 ID_Lang:1姓名:狗
我希望为法语中的Cat添加一个新的记录
ID:1 ID_Lang:2名称:聊天
现在我需要插入多个记录,有些将获得自动ID,其他将使用现有ID,具体取决于另一个表中是否存在值。
是否可以在单个INSERT ... SELECT语句中执行此操作,还是必须使用游标?