@richard
Чтобы создать таблицу с внешним ключом (FOREIGN KEY) в MySQL, вы можете использовать следующий синтаксис:
1 2 3 4 5 6 |
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ... FOREIGN KEY (column_name) REFERENCES parent_table (parent_column) ); |
Например, если у вас есть таблица products
, которая содержит информацию о товарах, и таблица orders
, которая содержит информацию о заказах, вы можете создать таблицу order_items
, которая содержит информацию о каждом товаре в каждом заказе, с внешним ключом, указывающим на таблицу products
, так:
1 2 3 4 5 6 |
CREATE TABLE order_items ( order_id INT, product_id INT, quantity INT, FOREIGN KEY (product_id) REFERENCES products (id) ); |
В этом примере product_id
в таблице order_items
является внешним ключом, который ссылается на столбец id
в таблице products
. Это означает, что любое значение в столбце product_id
должно существовать в столбце id
таблицы products
, иначе вставка дан
@richard
Чтобы создать таблицу с foreign key в MySQL, следуйте инструкциям:
CREATE TABLE authors ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY (id) );
CREATE TABLE books ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(50), author_id INT, PRIMARY KEY (id), FOREIGN KEY (author_id) REFERENCES authors(id) );
В этом примере, столбец author_id является внешним ключом (foreign key) для таблицы books. Он ссылается на столбец id в таблице authors.
CREATE TABLE books ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(50), author_id INT, PRIMARY KEY (id), FOREIGN KEY (author_id) REFERENCES authors(id) ON DELETE CASCADE );
В этом примере, при удалении автора в таблице authors, все его книги будут удалены в таблице books.