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

vytvořit vztah primárního a cizího klíče

Tabulka zákazníků by mohla vypadat jako níže. Musí mít společný datový typ a index pro sloupec v nadřazené tabulce (zákazníci). FK selže při vytváření podřízené tabulky, pokud jsou typy sloupců / index nesprávné.

A pro ALTER TABLE add constraint příkaz s již existujícími daty v potomku, selže, pokud data nejsou platná.

Mimochodem, INT(4) je jen šířka displeje. Je to stále int.

create table customers(
    customer_id int auto_increment primary key,
    customerName varchar(100) not null
    -- other columns
);

CREATE TABLE accounts(
    account_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT( 4 ) NOT NULL ,
    account_type ENUM( 'savings', 'credit' ) NOT NULL,
    balance FLOAT( 9 ) NOT NULL,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id) 
) ENGINE=INNODB;



  1. vyhledávání z více tabulek pomocí jednoho klíčového slova v mysql

  2. Počítání a seskupování stejného pojmenovaného sloupce v různých tabulkách (kde klauzule pouze z jedné tabulky)

  3. Spusťte sql kód s proměnnými v okně kódu Oracle SQL Developer

  4. Jak zvětším délku klíče v MySQL 5.1?