MySQL将ID插入多行

时间:2013-06-07 08:04:35

标签: mysql insert

我得到了以下insert-command:

INSERT INTO PERSON ('Name','Age','Filename') VALUES ('Max',12,'Max_ID_.pdf');

我想插入而不是'Max_ID_.pdf'这个行的插入ID的字符串。 e.g:

ID|Name|Age|Filename

2 |Max |12 |Max_2_.pdf

1 个答案:

答案 0 :(得分:1)

您可以先插入行,然后使用上次插入的ID更新它:

INSERT INTO PERSON ('Name','Age','Filename') VALUES ('Max',12,'xxx');
UPDATE PERSON Filename=CONCAT(LAST_INSERT_ID(),'.pdf') where id = LAST_INSERT_ID()

还有一种方法可以在一个声明中完成,可能稍微复杂一些,并且可能不适用于每个系统,例如如果您使用innodb或交易:

INSERT INTO PERSON SET Filename = CONCAT((SELECT auto_increment FROM
information_schema.tables WHERE table_name='PERSON'), '.pdf'),
Name = 'Max', Age = '12'