我想使用外键来保持完整性并避免孤儿(我已经使用了innoDB).
如何创建DELETE ON CASCADE的SQL语句?
如果我删除某个类别,那么如何确保它不会删除与其他类别相关的产品.
数据透视表"categories_products"在其他两个表之间创建了多对多关系.
categories
- id (INT)
- name (VARCHAR 255)
products
- id
- name
- price
categories_products
- categories_id
- products_id
Run Code Online (Sandbox Code Playgroud) 在课堂上,我们都在"学习"数据库,每个人都在使用Access.对此感到厌烦,我正在尝试做其他类正在做的事情,但使用MySQL的原始SQL命令而不是使用Access.
我已设法创建数据库和表,但现在如何在两个表之间建立关系?
如果我有这样的两个表:
CREATE TABLE accounts(
account_id INT NOT NULL AUTO_INCREMENT,
customer_id INT( 4 ) NOT NULL ,
account_type ENUM( 'savings', 'credit' ) NOT NULL,
balance FLOAT( 9 ) NOT NULL,
PRIMARY KEY ( account_id )
)
Run Code Online (Sandbox Code Playgroud)
和
CREATE TABLE customers(
customer_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
address VARCHAR(20) NOT NULL,
city VARCHAR(20) NOT NULL,
state VARCHAR(20) NOT NULL,
PRIMARY KEY ( customer_id )
)
Run Code Online (Sandbox Code Playgroud)
如何在两个表之间创建"关系"?我希望每个帐户都被"分配"一个customer_id(以表明谁拥有它).