簡體   English   中英

MYSQL#1005-無法創建表(錯誤號:150)

[英]MYSQL #1005 - Can't create table (errno: 150)

CREATE TABLE IF NOT EXISTS `userinit` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `usn` varchar(20) NOT NULL,
  `pwd` varchar(20) NOT NULL,
  `cmnd` int(9) NOT NULL,
  `dienthoai` varchar(11) NOT NULL,
  PRIMARY KEY (`id`,`usn`,`cmnd`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

這是我在mysql中創建的第一張表,然后我進行查詢以創建第二張表userinfo,如下所示

create table userinfo(
    cmnd int(9) primary key not null,
        ngaycapcmnd date,
        noicap varchar(50) character set utf8,
        hoten varchar(50) character set utf8 not null,
        ngaysinh date not null,
        quequan varchar(50) character set utf8,
        diachi varchar(100) character set utf8 not null,
        email varchar(100) unique not null,
        constraint fk_userinfo_userinit foreign key (cmnd) references userinit(cmnd)
)

然后它說,當我按OK時:#1005-無法創建表'xbook.userinfo'(errno:150)。 我使用最新的xampp。 你們能幫我解決這個問題嗎

這是因為您要引用的列沒有復合鍵盡管該列是復合鍵的一部分

嘗試在其中添加KEY ,例如

CREATE TABLE IF NOT EXISTS `userinit` 
(
  ......
  KEY (cmnd),         -- <<=== HERE
  PRIMARY KEY (`id`,`usn`,`cmnd`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM