【问题标题】:MySQL insert to multiple tables (relational)MySQL插入多个表(关系)
【发布时间】:2011-03-14 14:13:50
【问题描述】:
tbl_product
Name | Creator | UID | Salerank

tbl_price
Supplier | Price | UID

我想插入一个产品,然后将多个价格插入一个单独的表中。如何确保两个表具有相同的 UID,理想情况下是自动增量字段?我将使用 PHP 和 MySQL。

谢谢,

J

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    将 UID 设置为 products 表上的 auto_increment 主键,但只是价格表上的常规主键(无 auto_increment)。将它插入产品后,使用 PHP 命令mysql_insert_id()。这将获得上次查询生成的 ID,这将是您在 products 表上生成的 UID。为其分配一个变量并在价格表上的插入语句中使用它。

    http://php.net/manual/en/function.mysql-insert-id.php

    【讨论】:

    • +1:为价格表创建单独的主键没有害处;您也可以使用复合键(多于一列)。
    • 记得让 tbl_price.UID 引用 tbl_product.UID 作为外键,并使用 InnoDB。外键检查是你的朋友!
    • @OMG,对。我并不是说不要在价格表上使用主键,只是不要使用 auto_increment @Charles,同意。 +1
    【解决方案2】:

    为 UID 使用 GUID,或者更好的是,插入您的产品并使用例如插入价格。用于查找相关产品 UID 的产品名称(假设是唯一的)。

    【讨论】:

    • 对外键关系使用人工/代理键是一个更好的主意,因为名称可以更改,需要唯一名称等。与描述性文本相关,后果自负...
    猜你喜欢
    • 2011-12-23
    • 2013-12-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多