Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Primär- und Fremdschlüsselbeziehung erstellen

Die Kundentabelle könnte wie folgt aussehen. Es muss einen gemeinsamen Datentyp und Index für die Spalte in der übergeordneten Tabelle (Kunden) haben. Der FK schlägt beim Erstellen einer untergeordneten Tabelle fehl, wenn die Spaltentypen / der Index falsch sind.

Und für eine ALTER TABLE add constraint Befehl mit bereits vorhandenen Daten im untergeordneten Element, schlägt er fehl, wenn die Daten nicht gültig sind.

Übrigens ist INT(4) nur eine Anzeigebreite. Es ist immer noch ein 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;