我想知道如何存储主键的值,自动增加“DEFAULT”,以便我可以将其作为值插入另一个表行。
到目前为止,我有:
$sql = "INSERT INTO sales (
sale_id,
sale_amt,
sale_date)
VALUES (
DEFAULT, # <--- how to store the resulting value of this?
'$amt',
'$date'
)";
我需要存储“DEFAULT”创建的特定值,以便我可以将其插入到另一个表的行中。如何使用PHP或MySQL执行此操作?
答案 0 :(得分:2)
你不是。在您执行第一次插入后,您可以使用last_insert_id()
来检索它。
INSERT INTO foo (bar) VALUES (baz)
SELECT @id := last_insert_id();
INSERT INTO other (id, parent) VALUES (null, @id)
INSERT INTO yetanother (id, parent) VALUES (null, @id)
请注意,last_insert_id()
并不聪明,并会返回您执行的最后插入的ID。如果你做两个插入,然后尝试获取id,你将获得第二个(最后一个)插入的id。
答案 1 :(得分:1)
MySQL的:
您可以使用LAST_INSERT_ID()
函数在MySQL中找到它,因为将为AUTO_INCREMENT值插入最后一个插入ID。
$sql = "INSERT INTO sales (
sale_id,
sale_amt,
sale_date)
VALUES (
DEFAULT, # <--- how to store the resulting value of this?
'$amt',
'$date'
)";
sql2 = "INSERT INTO records (
sale_id,
customer_name,
other_info)
VALUES (
LAST_INSERT_ID(), <-------- correct sales_id
'$name',
'$info');