Cizí klíč pomáhá vytvářet databázové vztahy a udržovat referenční integritu. Pomáhají propojit jeden nebo více sloupců v jedné tabulce s jinou tabulkou. Zde je návod, jak přidat cizí klíč do MySQL.
Jak přidat cizí klíč do MySQL
Zde jsou kroky k přidání cizího klíče do MySQL. Omezení cizího klíče můžete přidat pomocí příkazů CREATE TABLE nebo ALTER TABLE v SQL.
Zde je syntaxe pro vytvoření cizího klíče v MySQL.
Pomocí ALTER TABLE
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...);
Ve výše uvedeném dotazu název_tabulky je tabulka, do které chcete přidat cizí klíč. název_omezení je název omezení cizího klíče. cizí_klíč_název, … je seznam sloupců cizího klíče.
parent_table je tabulka, na kterou odkazuje váš cizí_klíč, následovaná seznamem názvů sloupců v této tabulce
Bonusové čtení:MySQL Alter Table Column
Pomocí CREATE TABLE
CREATE TABLE table_name( column_name column_description, CONSTRAINT constraint_name FOREIGN KEY (foreign_key_name,...) REFERENCES parent_table(column_name,...) )
Ve výše uvedeném dotazu název_tabulky je tabulka, kam chcete přidat cizí klíč. název_omezení je název omezení cizího klíče. cizí_klíč_název, … je seznam sloupců cizího klíče.
parent_table je tabulka, na kterou odkazuje váš cizí_klíč, následovaná seznamem názvů sloupců v této tabulce.
Poznámka , v ALTER TABLE musíte použít ADD CONSTRAINT, zatímco v CREATE TABLE musíte použít pouze klíčové slovo CONSTRAINT.
Bonusové čtení:MySQL DROP FOREIGN KEY Omezení
Příklady PŘIDÁNÍ CIZÍHO KLÍČE pro MySQL
Řekněme, že máte následující tabulky.
Vytvoříme 2 tabulky (kategorie a objednávky ) a přidejte do objednávek omezení cizího klíče , s odkazem na id sloupec v kategoriích tabulka.
mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> create table orders(id int auto_increment primary key,category_id int, CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id)); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Bonusové čtení:MySQL DROP UNIQUE CONSTRAINT
Podívejme se na stejný příklad pomocí příkazu ALTER TABLE.
mysql> create table orders(id int auto_increment primary key,category_id int); mysql> create table categories(id int auto_increment primary key,name varchar(255)); mysql> ALTER TABLE orders ADD CONSTRAINT fk_cat FOREIGN KEY (category_id) REFERENCES categories(id); mysql> describe orders; +-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | category_id | int(11) | YES | MUL | NULL | | +-------------+---------+------+-----+---------+----------------+
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!