【mysql外键级联更新删除】教程文章相关的互联网学习教程文章

mysql – 使用外键复制多个记录【代码】

假设我有两个表格,A和B,每个表格有三列(A.id,A.title,A.text和B.id,B.a_id,B.text). B.a_id是与A.id有关的外键.现在,假设A(1,’foo’,’bar’)中有一条记录,B中有2条记录(1,1,’test’)和(2,1,’test1′). 我的问题是,是否有一种标准方法在A中复制记录,同时复制B中与A相关的所有记录.所以假设我在A中创建一个新记录(2,’foo’,’ bar’)基于(1,’foo’,’bar’),是否有某种方法可以在B(3,2,’test’)和(4,2,’test1)中创建两个新记...

MYSQL:错误:无法添加或更新子行:外键约束失败【代码】

在Windows操作系统上使用MySQL,并在尝试在两个表之间创建外键时出错:CREATE TABLE tf_traffic_stats ( domain_name char(100) NOT NULL, session_count int(11) NULL, search_count int(11) NULL, click_count int(11) NULL, revenue float NULL, rpm float NULL, cpc float NULL, traffic_date date NOT NULL DEFAULT '0000-00-00', PRIMARY KEY(domain_name,traffic_date))和...

子查询并为MySQL中的多个外键选择最旧的行【代码】

我有两张桌子:product (idproduct, name, description, tax)product_storage (idstorage, idproduct, added, quantity, price)对于每种产品,它可能是不同的价格和最古老的“首先出售” 例如在存储中我有:1, 1, 2010-01-01, 0, 10.0 2, 1, 2010-01-02, 0, 11.0 3, 1, 2010-01-03, 10, 12.0 4, 2, 2010-01-04, 0, 12.0 5, 2, 2010-01-05, 10, 11.0 6, 2, 2010-01-06, 10, 13.0 7, 3, 2010-01-07, 10, 14.0 8, 3, 2010-01-08, 10...

MySQL:未强制执行外键约束【代码】

我有两张表如下:CREATE TABLE customer (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(25),PRIMARY KEY(id) );CREATE TABLE `client` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(200),`customer_id` INT NOT NULL,PRIMARY KEY(`id`),INDEX(`customer_id`),FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT );然后我跑了以下:INSERT INTO customer (name) VALUES ('Custo...

mysql – 外键的`Constraint Symbol`和`index_name`之间的区别【代码】

在Alter Table命令中添加外键的MySQL语法如下:ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...)CONSTRAINT符号和index_name之间有什么区别.从我可以看出,它们都是命名外键的方法,但我认为必须有更多的差异,任何人都可以启发我吗?解决方法:[symbol]是一个约束名,如果指定,MySQL将创建外键和索引,命名为[symbol];在这种情况下,[index_name]将被忽略. 第二个[index_name]是索引名称.此索引是自动创建的.如...

mysql – 外键的效率如何?

很简单的问题:哪个更有效率? >对父表执行DELETE查询,然后对子表执行DELETE查询>父表上的DELETE查询,导致外键从子表中删除行 为了进一步解释,我正在使用非常大的表(持有几百万行),我只是想知道外键提供的完整性是否值得MySQL必须做的额外工作,而不仅仅是记住更新/删除子表.在我真正继续并更新使用外键之前,我想知道;)解决方法:无论您认为自己可以自己编码,数据库至少也可以做到,而无需使用网络来完成. 使用外键.

php – 有26个外键可以替代MySQL表【代码】

我有一个InnoDB MySQL数据库,其表格需要能够通过外键连接到其他26个表中的一个.每条记录一次只能连接到这26条记录中的一条.该表可能包含不超过10,000条记录.有没有其他方法可以做到这一点?-- ----------------------------------------------------- -- Table `db_mydb`.`tb_job` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `db_mydb`.`tb_job` (`job_id` INT(11) NOT NULL AUTO_INC...

mysql – 基于外键的子字符串连接两个表(MS SQL2005)【代码】

我被困在加入两个表“a”和“b”.两个表的结构如下. 表A.+-------------+---------------------+ + SKU | Title + +-------------+---------------------+ + 12345_786 | Some text + + | + + 12345_231 | Sony + + | + + 12345_222 | Samsung + + | + + 674...

MySQL – 错误1215,无法添加外键约束【代码】

我知道这里有很多关于这个错误的问题,但我已经搜索了很多,似乎没有人在我的案例中解释它!我使用以下代码创建了一个表:CREATE TABLE Venue (venueID VARCHAR(20), venueEmail VARCHAR(30) NOT NULL, address VARCHAR(100), phoneNo VARCHAR(20), managerNo VARCHAR(20), capacity INT(4), PRIMARY KEY (venueEmail) )ENGINE=InnoDB;我正在尝试使用此代码创建一个带有外键的表,该外键引用第一个表:CREATE TABLE Concert (referenc...

MySQL Errno:150“外键约束不正确”【代码】

有谁知道为什么我收到以下错误信息?errno: 150 “Foreign key constraint is incorrectly formed”CREATE TABLE meter (`code` CHAR(5) NOT NULL,`type` VARCHAR(30) NOT NULL,description VARCHAR(30) NULL,location_code CHAR(3) NOT NULL, CONSTRAINT pri_meter PRIMARY KEY (`code`), CONSTRAINT for_meterFOREIGN KEY (location_code) REFERENCES location (`code`));CREATE TABLE location(`code` CHAR(3) NOT NULL,company...

mysql – 空外键

新手程序员在这里. 我有3个表,即产品,类别和子类别.我以这种方式配置他们的关系: 产品分类:多对多产品到子类别:一对一分类的子类别:多对一 我添加了一个subcategory_id列,它是产品表中的外键(用于映射产品和子类别表).如果产品具有子类别,则此方法有效.现在的问题是我的产品没有子类别.假设是subcategory_id列将为null,但不允许.这有解决方法吗?我也认为关系配置与此有关.有什么想法吗?解决方法:只要subcategory_id可以为空,...

mysql – 一个表中同一列上的两个外键【代码】

我有一个项目表,其中包含image_id字段和newsimage_id字段. 两者都链接到图像表.但InnoDB不允许我为其设置外键两个字段都在同一列(id). 我有办法做到这一点还是不可能?我通过MAMP使用MySQL. 提前致谢!!解决方法:我是这样做的(MySQL 5.0.45):ALTER TABLE `job_dependency` ADD FOREIGN KEY (`job`) REFERENCES `job` (`id`), ADD FOREIGN KEY (`dependency`) REFERENCES `job` (`id`);在这种情况下,ON DELETE CASCADE存在问题,因...

另一个数据库中表中的MySQL外键?

是否可以在MySQL的另一个数据库中引用(InnoDB)外键? 这是不好的做法吗?解决方法:是的,它可以在同一个DB服务器上运行.添加约束时前缀数据库名称,例如databasename.tablename.fieldname.观察您的用户权限. 我不认为这是不好的做法,虽然它不应该经常发生.

mysql – 如何在同一个查询中使用外键计算表中的行数?【代码】

假设我有table1,其中包含一个名为Name的字段和一个名为ItemID的字段,它是table2的外键. 我想要的是一个包含每个Name的查询,以及table2中有多少条目与该条目具有相同的ItemID. 我该怎么做呢?解决方法: select Name, count(ItemID) as itemCount from table1 inner join table2 on table1.ItemID = table2.id group by Name但我的sql-fu可能生锈了:P 请注意,这将不为Names提供任何行,其中table2不包含匹配的行,因此itemCould将始终...

mysql – SQL外键约束错误1025(152)【代码】

每次我试图放下一个名为“countires”的表和一个名为“countries”的字段时,我都会收到错误.#1025 - Error on rename of '.\mutli_page_form\survey' to '.\mutli_page_form\#sql2-820-1fb' (errno: 152)它表示对“调查”表有一个FK依赖,我已多次尝试将其删除但没有成功.#1217 - Cannot delete or update a parent row: a foreign key constraint fails一旦尝试删除国家/地区表,我现在收到此错误解决方法:已告知数据库确保数据完整...