例如,我有2个表:
CREATE TABLE IF NOT EXISTS master(
master_id INT NOT NULL AUTO_INCREMENT,
master_name VARCHAR(15) NOT NULL,
PRIMARY KEY(master_id)
) TYPE=InnoDB CHARACTER SET=UTF8;
和
CREATE TABLE IF NOT EXISTS slave(
slave_id INT NOT NULL AUTO_INCREMENT,
slave_name VARCHAR(15) NOT NULL,
master_id INT
PRIMARY KEY (slave_id),
FOREIGN KEY (master_id) REFERENCES master(master_id)
) TYPE=InnoDB CHARACTER SET=UTF8;
如何检查主表是否连接到从表,然后,如果是,我想知道slave是否为空?
答案 0 :(得分:1)
我不确定我是否理解你的问题,但我会尽力回答。如果使用外键引用FOREIGN KEY (master_id) REFERENCES master(master_id)
创建了从属表,则主表必须“连接”到从属表。
至于slave表是否为空:如果此查询返回其中包含零的列,则为空:
SELECT COUNT(*) FROM slave
答案 1 :(得分:1)
您可以通过连接来检查两个表是否已连接。
SELECT COUNT(*) as number_of_connections
FROM master m
INNER JOIN slave s ON (s.master_id = m.master_id)
UNION ALL
SELECT COUNT(*) as rows_in_slave
FROM slave s2
UNION ALL
SELECT COUNT(*) as rows_in_master
FROM master m2
此查询将返回正好3行,它将告诉您连接数,从表是否为空以及主表是否分别为空。