首页 >

mysql怎么利用约束删除一行 |mysql kill lock

mysql存pickle,提高计算 mysql 速度,mysql免安装指定文件,mysql实施面试题,mysql中文变为问号,mysql kill lockmysql怎么利用约束删除一行 |mysql kill lock

假设有两张表,一张为订单表,另外一张为订单明细表,订单明细表中有一个外键约束指向订单表中的订单ID:

CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE
);
CREATE TABLE order_details (
detail_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (order_id) REFERENCES orders(order_id) ON DELETE CASCADE
);

这里的ON DELETE CASCADE表示当订单表中的某一行被删除时,与该行相关的订单明细表中的所有行也会被自动删除。如果想在删除订单表中的某一行时同时删除该行对应的所有订单明细表中行,只需要执行以下SQL语句即可:

DELETE FROM orders WHERE order_id = 123;

此时,如果订单表中有某些订单行与订单明细表中的行存在关联,则这些行会被自动删除。如果想删除订单表中特定订单行的关联行而不是所有行,可以执行类似以下的语句:

DELETE FROM order_details WHERE order_id = 123;

注意,如果在删除订单表中的一行前,没有删除与之相关的从表行或将从表行的外键列设置为NULL,会抛出以下错误:

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails.

mysql怎么利用约束删除一行 |mysql kill lock
  • c mysql如何读取一列数据? |mysqld safe 自动启动
  • c mysql如何读取一列数据? |mysqld safe 自动启动 | c mysql如何读取一列数据? |mysqld safe 自动启动 ...

    mysql怎么利用约束删除一行 |mysql kill lock
  • mysql创建表格时定义外键(详解外键的定义及用法) |mysql数据库热点
  • mysql创建表格时定义外键(详解外键的定义及用法) |mysql数据库热点 | mysql创建表格时定义外键(详解外键的定义及用法) |mysql数据库热点 ...

    mysql怎么利用约束删除一行 |mysql kill lock
  • mysql三表连接详解及实例演示 |mysql怎么导入大的数据
  • mysql三表连接详解及实例演示 |mysql怎么导入大的数据 | mysql三表连接详解及实例演示 |mysql怎么导入大的数据 ...