mysql - [MySQL] : Inserting values into an intermediate table

标签 mysql auto-increment

我最近添加了一个中间表来链接两个表。

表格:

Purchase:
Transaction_Id  Purchase_Id

Schedule:
Show_Id     Price

Purchase_Schedule:
PurchaseId(fk)   Show_Id(fk)

我的问题是 purhcase_id 处于 auto_increment 状态。所以我不确定从哪里获取该 ID。

我本来打算做这样的事情......

INSERT INTO
    Purchase_Schedule
        (Purchase_ID, Show_ID)
    VALUES
        ((SELECT Purchase_ID FROM Purchase WHERE Transaction_ID=$transactionID),$purchaseID)";

问题在于,一个 Transaction_ID 可以有多个与之关联的purchase_ID...所以这种方法已经过时了。

所以我相信解决这种情况的最佳方法是使用某种存储过程来自动更新Purchase_Schedule。

我应该使用存储过程吗?
有没有办法插入到Purchase_Schedule @当前插入的Purchase_ID?
或者返回自动递增的Purchase_ID的方法?

最佳答案

如果您使用 PHP 插入数据,则可以使用 mysql_insert_id检索插入的最后一行的自动递增 id 的值。

您也可以通过 SQL 获取它:

SELECT LAST_INSERT_ID()

参见the MySQL manual了解更多信息。

关于mysql - [MySQL] : Inserting values into an intermediate table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202497/

相关文章:

mysql - 如何在Windows上的mysql中创建新服务器?

java - 在 Java 的 PreparedStatement 中使用大于或等于 (>=)

mysql - 如何在 MySQL 中启用 FEDERATED 引擎?

php - 我如何从 mysqli 数据库执行 php 脚本

php - Magento - 基表 core_file_storage 不存在

sql-server-2008 - SQL Server 2008 重复主键异常

mysql - 在 mysql 表 auto_increment 中创建一个 ID(事后)

java - 在多线程环境下使用 JDBC getGenerateKeys 函数

javascript - 为什么我用xmlhttprequest抓取数据时,主键跳动很大?

sql - 每组值的自定义序列号/自动增量