日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据传输完整性_mysql – 处理数据库完整性

發(fā)布時間:2023/12/19 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据传输完整性_mysql – 处理数据库完整性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在使用innodb約束在我的應(yīng)用程序的下一個版本中引入數(shù)據(jù)庫完整性.一切順利,但我的一些表有記錄與刪除的引用(死記錄),因為他們我不能添加約束到表.

我在嘗試:

ALTER TABLE `article` ADD FOREIGN KEY (`author_id`) REFERENCES `authors` (`id`) ON DELETE CASCADE;

我得到:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`books`.<result 2 when explaining filename '#sql-442_dc'>, CONSTRAINT `#sql-442_dc_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `authors` (`id`) ON DELETE CASCADE)

運行此查詢,我發(fā)現(xiàn)超過500條記錄沒有引用(作者被刪除,但他們的文章仍然存在):

SELECT `articles`.`id`

FROM `articles` LEFT JOIN `authors` ON `articles`.`author_id` = `authors`.`id`

WHERE ISNULL(`authors`.`id`);

所以,在我添加約束之前,我必須處理這些問題.如何刪除使用上述查詢獲得的所有記錄?

我試過了:

DELETE FROM `articles` WHERE `id` IN (

SELECT `articles`.`id`

FROM `articles` LEFT JOIN `authors` ON `articles`.`author_id` = `authors`.`id`

WHERE ISNULL(`authors`.`id`);

)

但是mysql響應(yīng):

You can't specify target table 'articles' for update in FROM clause

任何有關(guān)這方面的幫助將不勝感激.

總結(jié)

以上是生活随笔為你收集整理的mysql数据传输完整性_mysql – 处理数据库完整性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。