mysql:将DEFAULT值存储为变量

时间:2014-05-27 19:23:52

标签: php mysql sql

我想知道如何存储主键的值,自动增加“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执行此操作?

2 个答案:

答案 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');