0

https://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html#.T8foMxTft0xから例を挙げるには:

CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
                      price DECIMAL,
                      PRIMARY KEY(category, id)) ENGINE=INNODB;
CREATE TABLE customer (id INT NOT NULL,
                       PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,
                            product_category INT NOT NULL,
                            product_id INT NOT NULL,
                            customer_id INT NOT NULL,
                            PRIMARY KEY(no),
                            INDEX (product_category, product_id),
                            FOREIGN KEY (product_category, product_id)
                              REFERENCES product(category, id)
                              ON UPDATE CASCADE ON DELETE RESTRICT,
                            INDEX (customer_id),
                            FOREIGN KEY (customer_id)
                              REFERENCES customer(id)) ENGINE=INNODB;

同様の問題がありますが、Foreign key (この例では顧客 ID) を unsigned、set default、length などに変更できないことに気付きました。依存しており、同じタイプである必要があります。これを行う他の方法はありますか?

4

1 に答える 1

0

外部キーを削除し、列を変更してから、外部キーを再度追加できます。

于 2012-05-31T22:13:00.693 に答える