mysql 建表 关联外键时 error 1005

zly361814478 2012-11-23 01:44:44
有时候 创建表的时候,可能哪儿不小心 就提示1005

看有些人说 主要是 关联外键时, 字段 长度,和约束都得一致, 我都一致了
还是会提示1005

请教下 平常建表的时候, 哪些地方最容易出现1005 提示啊 ? 哪些地方该值得注意。
...全文
317 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 14 楼 WWWWA 的回复:
SET FOREIGN_KEY_CHECKS = 0; 修改完后 SET FOREIGN_KEY_CHECKS = 1;
真诚的感谢你, 朋友。
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
SET FOREIGN_KEY_CHECKS = 0; 修改完后 SET FOREIGN_KEY_CHECKS = 1;
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
错误码: 1025
Error on rename of '.\zly\#sql-5c8_1' to '.\zly\login' (errno: 150 - Foreign key constraint is incorrectly formed)

Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000

zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 11 楼 WWWWA 的回复:
表已经建立了? ALTER TABLE login CONVERT TO CHARACTER SET utf8; or ALTER TABLE login CHANGE username username VARCHAR(20) CHARACTER SET utf8;
我大概知道我这个的原因了 ,就是因为login 这个表的那两个字符编码原因, login表已经创建好了,username 和 userpassword 字符是gbk 但表是utf8 的 而且还有另外一张表content里面的字段 也引用了这个login 里面的username 那张表也是gbk 所以可以关联成功, 现在 就是 要把login和content 两张表里面的 gbk字符转为utf8
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
表已经建立了? ALTER TABLE login CONVERT TO CHARACTER SET utf8; or ALTER TABLE login CHANGE username username VARCHAR(20) CHARACTER SET utf8;
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 8 楼 WWWWA 的回复:
image_user上没有索引?
怎么修改 指定列的 字符集呢, 就是那那两个字段gbk 改成utf8
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 8 楼 WWWWA 的回复:
image_user上没有索引?
这个没关系吧
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
image_user上没有索引?
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
CREATE TABLE login ( username VARCHAR(20) PRIMARY KEY , userpassword VARCHAR(20) NOT NULL, LEVEL TINYINT(4) NOT NULL DEFAULT 0, POINT INT(11) DEFAULT 0, NAME VARCHAR(20) UNIQUE, dgtime DATETIME NOT NULL); CREATE TABLE images ( image_id INT AUTO_INCREMENT PRIMARY KEY, image_user VARCHAR(20), image_path VARCHAR(30), FOREIGN KEY (image_user) REFERENCES login(username) ON DELETE CASCADE);
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
这是第一张,
CREATE  TABLE login (
username VARCHAR(20) PRIMARY KEY ,
userpassword VARCHAR(20) NOT NULL,
LEVEL TINYINT(4) NOT NULL,DEFAULT 0,
POINT INT(11) DEFAULT 0,
NAME VARCHAR(20) UNIQUE,
dgtime DATETIME NOT NULL);
准备建立的表
CREATE TABLE images (
image_id INT AUTO_INCREMENT PRIMARY KEY,
image_user VARCHAR(20),
image_path VARCHAR(30),
FOREIGN KEY (image_user) REFERENCES login(username) ON DELETE CASCADE);	
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
引用 4 楼 zly361814478 的回复:
引用 3 楼 WWWWA 的回复:去掉这2列的字符集设置试试,贴2表的建表SQL文本 2表 就是 发帖那个啊? 没建成功 还有~~怎么去掉指定列的 字符集?
是文本,不是图片
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 3 楼 WWWWA 的回复:
去掉这2列的字符集设置试试,贴2表的建表SQL文本
2表 就是 发帖那个啊? 没建成功 还有~~怎么去掉指定列的 字符集?
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
去掉这2列的字符集设置试试,贴2表的建表SQL文本
zly361814478 2012-11-23
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
表引擎是什么,贴两表的建表SQL

我怀疑是不是字符集的原因?
我这个字段的字符集 有两列 居然是gbk 怎么修改成统一的utf8呢
WWWWA 2012-11-23
  • 打赏
  • 举报
回复
表引擎是什么,贴两表的建表SQL

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧