【问题标题】:Can't create table `mailorder`.`o_details` (errno: 150 "Foreign key constraint is incorrectly formed")无法创建表`mailorder`.`o_details`(errno:150“外键约束格式不正确”)
【发布时间】:2020-07-05 19:14:18
【问题描述】:

我已经制作了parts表并将主键设置为P_NO。

CREATE table o_details (
    O_NO int NOT null AUTO_INCREMENT PRIMARY KEY,
    P_NO int,
    QUANTIITY int,
    CONSTRAINT FK_PersonOrder 
    FOREIGN KEY (P_NO) REFERENCES parts(P_NO)

);

零件表

Create Table parts( P_NO int not null AUTO_INCREMENT primary key, P_NAME varchar(255), QOH varchar(255), Price int, OLevel varchar(255) );

【问题讨论】:

  • 请分享create tableparts的声明。
  • 创建表部分(P_NO int not null AUTO_INCREMENT 主键,P_NAME varchar(255),QOH varchar(255),Price int,OLevel varchar(255));
  • t1f 我必须从零件表中制作外键。
  • @AbdulWahab 检查我的答案。
  • 为我工作:dbfiddle.uk/…

标签: mysql database xampp


【解决方案1】:

试试这个

CREATE table o_details ( O_NO int NOT null  PRIMARY KEY IDENTITY(1, 1), 


P_NO int, QUANTIITY int, CONSTRAINT FK_PersonOrder FOREIGN KEY (P_No) REFERENCES parts(P_No)

);

【讨论】:

    【解决方案2】:
    CREATE SCHEMA `mailorder` ;
    
        CREATE TABLE `mailorder`.`parts` (
          `P_NO` INT NOT NULL AUTO_INCREMENT,
          `P_NAME` VARCHAR(255) NULL,
          `QOH` VARCHAR(255) NULL,
          `Price` INT NULL,
          `OLevel` VARCHAR(255) NULL,
          PRIMARY KEY (`P_NO`));
    
        CREATE TABLE `mailorder`.`o_details` (
          `O_NO` INT NOT NULL AUTO_INCREMENT,
          `P_NO` INT NULL,
          `QUANTITY` INT NULL,
          PRIMARY KEY (`O_NO`));
    
    
        ALTER TABLE `mailorder`.`o_details` 
        ADD INDEX `FK_PersonOrder_idx` (`P_NO` ASC) VISIBLE;
        ;
        ALTER TABLE `mailorder`.`o_details` 
        ADD CONSTRAINT `FK_PersonOrder`
          FOREIGN KEY (`P_NO`)
          REFERENCES `mailorder`.`parts` (`P_NO`)
          ON DELETE NO ACTION
          ON UPDATE NO ACTION;
    

    【讨论】:

    • 我在 xampp 上使用 mysql,这会出现语法错误。
    • #1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 2 行的 '' 附近使用的正确语法
    • 它怎么'不工作'?我现在使用确切的代码在我的 mysql 服务器上创建了它,它工作正常。说明问题所在。
    • 小心可见索引,它们是相对较新的(v8.0 plus)
    猜你喜欢
    • 1970-01-01
    • 2018-06-19
    • 2018-03-02
    • 2020-07-07
    • 1970-01-01
    • 2019-01-05
    • 2017-04-13
    • 2018-09-04
    • 2019-09-17
    相关资源
    最近更新 更多