考虑下表,示例
完全随机CREATE TABLE `test` (
`key` int(11) NOT NULL,
`id2` varchar(255) NOT NULL,
`id3` varchar(255) NOT NULL,
`text` varchar(255) NOT NULL,
PRIMARY KEY (`key`,`id2`,`id3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我需要插入并获取插入行的唯一标识符,这将是复杂的主键。如果我有一个列主键,我会使用PDO::lastInsertId
,但如果我在这种情况下使用它,我会得到语句string(1) "0"
的结果INSERT INTO test VALUES (1, 1, 1, 'test')
。有什么办法可以在插入后获得复杂密钥的主键列吗?在上面的陈述中,我需要得到array(1, 1, 1)
答案 0 :(得分:1)
只有当系统生成字段时,mySQL才能返回最后插入的密钥,否则,无法使用函数检索上次保存的数据。
您可以使用生成的标识符并使用第二个选择来检索每个键,但我不确定该性能是否符合您的预期。遗憾。