2015-03-19 29 views
0

当从表A复制到表BI需要表A ID和image_name被复制到表B中,其中表A和B具有作为主键的id时,我有两个具有相同结构的表和自动递增。但ID具有表B.新的价值插入选择的陈述ID不被复制

表结构:

`id` int(11) NOT NULL AUTO_INCREMENT, 
    `camera_id` int(11) NOT NULL, 
    `name` varchar(20) NOT NULL, 
    `plate` varchar(20) NOT NULL, 
    `nread` int(11) DEFAULT NULL, 
    `datetime` datetime NOT NULL, 
    `millisecs` int(3) NOT NULL, 
    `nationality` varchar(3) NOT NULL, 
    `image_name` varchar(255) DEFAULT NULL, 
    `image` mediumblob, 
    `checked` int(1) NOT NULL DEFAULT '0', 

$sql = "INSERT INTO $newCamTable (plate, nread, datetime, millisecs, nationality, image_name, image) SELECT plate, nread, datetime, millisecs, nationality, image_name, image FROM $camTable WHERE id=\"$tableEntryId\""; 
    logit($sql); 
+0

那是什么错误独特之处? – MarcinWolny 2015-03-19 09:10:27

+1

我看不到eny的问题? – Jens 2015-03-19 09:11:18

+0

ID未被复制,它在表B上具有新的ID值...并非完全错误 – pretyv5 2015-03-19 09:11:24

回答

0

改变这一行

$sql = "INSERT INTO $newCamTable (plate, nread, datetime, millisecs, nationality, image_name, image) SELECT plate, nread, datetime, millisecs, nationality, image_name, image FROM $camTable WHERE id=\"$tableEntryId\""; 

,并添加id字段:

$sql = "INSERT INTO $newCamTable (id, plate, nread, datetime, millisecs, nationality, image_name, image) SELECT id,plate, nread, datetime, millisecs, nationality, image_name, image FROM $camTable WHERE id=\"$tableEntryId\""; 

这将防止自动增量功能在表格'B'中生成一个新的ID。

需要手动管理该ID是在表“B”

+0

谢谢阿克塞尔.... – pretyv5 2015-03-20 10:55:04