【发布时间】:2014-06-01 23:48:57
【问题描述】:
两张表的结构如下:
use exercise;
create table Companies
(
ID int,
Name varchar(100),
City varchar(100),
c_size varchar(100),
PRIMARY KEY (ID)
);
insert into Companies(ID, Name, city, company_size)
values
(222, 'Karma LLC','CITY2', 'big'),
(223, 'Manny Ind.','CITY1', 'medium'),
(224, 'Random PLC','CITY1', 'medium'),
(225, 'Hijack LLC','CITY1', 'medium'),
(226, 'Travels LLC','CITY1', 'small'),
(227, 'Mirana Ind.','CITY2', 'small'),
(228, 'Polla Ind.','CITY3', 'small'),
(229, 'Americano LLC','CITY3', 'small'),
(230, 'Macaroni LLC','CITY4', 'small');
CREATE TABLE INVOICES
(
ID INT auto_increment,
`DATE` DATE,
Company INT,
Amount DECIMAL(7,2),
PRIMARY KEY (ID)
);
INSERT INTO INVOICES(`DATE`,Company,Amount)
VALUES
('2014-01-02', 222, 19500.00),
('2014-01-02', 222, 29205),
('2014-01-07', 222, 152.50),
('2014-01-07', 223, 6590),
('2014-01-07', 223, 4999),
('2014-01-09', 224, 720.60),
('2014-01-09', 225, 1100),
('2014-02-05', 226, 885),
('2014-02-05', 222, 9678.7);
如您所见,有些公司支付了发票,有些则没有。我想知道如何防止删除公司,支付发票。例如,可以删除 Americano LLC (229) 公司,但不能删除 Karma LLC。
答案可能只是描述方式,而不是必要的查询代码。
我不确定是否可以通过设置外键或触发其他方式来完成?
抱歉,如果我用重复的方式向 stackoverflow 发送垃圾邮件,但我有点累(这里是凌晨 2 点),但因此无法入睡。如果需要,我明天会删除它。
抱歉英语不好:(
【问题讨论】:
标签: mysql sql delete-row sql-delete