表创建中的PHP代码中的外键约束

时间:2015-08-02 22:59:00

标签: php mysql

我有一个名为property的表,结构如下:

$sql = "CREATE TABLE property (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            seller_id INT(6) NOT NULL,
            property_name VARCHAR(30) NOT NULL,
            address VARCHAR(30) NOT NULL,
            reg_date TIMESTAMP
            )";
            mysql_query($sql);

我还有另一个名为dealtype的表:

$sql = "CREATE TABLE dealtype (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            seller_id INT(6) NOT NULL,
            deal_type VARCHAR(30) NOT NULL,
            FOREIGN KEY (property_id) REFERENCES property (id),
            reg_date TIMESTAMP
            )";
            mysql_query($sql);

现在property_id中的dealtype tableid表中property的外键,但它不在php代码中工作。 <{1}}表已创建,但property未创建。

我的错误在哪里?

1 个答案:

答案 0 :(得分:1)

您需要在之前声明变量的类型为,并指定它是外键:

$sql = "CREATE TABLE dealtype (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            seller_id INT(6) NOT NULL,
            deal_type VARCHAR(30) NOT NULL,
            property_id int(6) unsigned,
            reg_date TIMESTAMP,
            FOREIGN KEY (property_id) REFERENCES property (id)
        )";

据推测,seller_idsellers表(或类似的)具有相似的关系。