sql >> Databáze >  >> RDS >> Mysql

MySQL Přidat cizí klíč

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!

  1. Jak mohu uzamknout tabulku při čtení pomocí Entity Framework?

  2. příklady syntaxe spojení Oracle

  3. Rychlý a nejlepší trik pro obnovu souborů SQL Server MDF

  4. MySQL „NOT IN“ dotazuje 3 tabulky