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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据被截断_有关Mysql数据截断问题的处理方法

發布時間:2024/1/23 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据被截断_有关Mysql数据截断问题的处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試數據:

有一個表aritcle和另一個表article_comment,關聯是article的id。

創建測試表及添加測試數據:

表1:

復制代碼 代碼示例:

CREATE TABLE `article` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(200) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB;

表2:

復制代碼 代碼示例:

CREATE TABLE `article_comment` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`text` varchar(200) NOT NULL,

`article_id` int(10) unsigned NOT NULL,

PRIMARY KEY (`id`),

KEY `art_id` (`article_id`),

CONSTRAINT `art_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB;

添加測試數據:

復制代碼 代碼示例:

set sql_mode='';

insert into article values(12345678901,'name1');

insert into article_comment(text,article_id) values('text1',12345678901);

insert into article_comment(text,article_id) values('text2',12345678902);

查看數據:

1,article表

4294967295 name1

2,article_comment表

1 text1 4294967295

2 text2 4294967295可以看出,本來第二個插入的評論想關聯另一個文章,但是卻關聯到了第一篇文章,這是因為Mysql的Data Truncation截斷的原因。

show warnings顯示

Warning | 1265 | Data truncated for column 'article_id' at row 1造成:

1,評論關聯到錯誤的文章

2,同一篇文章關聯到許多的評論(這會造成性能問題)

解決方法:

復制代碼 代碼示例:

set sql_mode='STRICT_ALL_TABLES';

insert into article_comment(text,article_id) values('text1',12345678903);

這會報錯:

[SQL] insert into article_comment(text,article_id) values('text1',12345678903);

[Err] 1264 - Out of range value for column 'article_id' at row 1如此,便避免了上述問題的出現。

總結

以上是生活随笔為你收集整理的mysql数据被截断_有关Mysql数据截断问题的处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。