gpt4 book ai didi

mysql - 当我需要知道另一个表的外键值时,如何将数据插入到一个表中?

转载 作者:行者123 更新时间:2023-11-29 06:05:53 26 4
gpt4 key购买 nike

我有两个表:

Customer ,其中字段 ID 是自动递增的,主键和

address ,其中字段 customer_ID 是外键。

我有一个表格,要求提供所有客户信息及其地址(可以超过 1 个)

我运行以下两个查询来更新数据库,但我当前正在手动输入 Customer_ID 的值来测试它。

mysql_query("INSERT INTO customer(First_Name, Surname, Company_Name, Telephone, Alt_Telephone)VALUES('$fName', '$lName', '$cName', '$tel', '$altTel')") ;
mysql_query("INSERT INTO address(line_1, line2, town, postcode, customer_ID)VALUES('$line1', '$line2', '$town', '$post_code', '2')") ;

customer_ID 字段应该与客户表中当前的 ID 字段相同,我如何确保在填写地址表时它正在执行此操作自动?

最佳答案

使用 PHP

解决您的问题的最简单方法是调用 mysql_insert_id在您第一次调用 mysql_query 后的 php 代码中(将数据插入到您的表 customer 中)。

此函数将返回最后插入的 ID,但您必须确保客户的 ID 是自动递增的主键。

mysql_insert_id 返回的值是给定连接/ session 的本地值,即使另一个连接在您插入记录之后插入一条记录,您也会获得您插入的 ID。


使用 MySQL

您可以使用 SQL 函数 LAST_INSERT_ID() 如下,只需确保之前运行的 sql 查询是插入到 customer 中(以及检查 id 是否确实是一个键并且自动递增)。

-- first insert into `customer`

INSERT INTO address
address(line_1, line2, town, postcode, customer_ID)
VALUES
('$line1', '$line2', '$town', '$post_code', LAST_INSERT_ID());

php-version 相同,LAST_INSERT_ID() 将检索您最后插入的 ID。


您还可以使用 SQL 功能,该功能可描述为SELECT INTO,请参阅以下代码片段:

INSERT INTO address
address(line_1, line2, town, postcode, customer_ID)
SELECT
'$line1', '$line2', '$town', '$post_code', customer.id
FROM customer
WHERE <some_constraint>

关于mysql - 当我需要知道另一个表的外键值时,如何将数据插入到一个表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com