问答

mysql数据库填充数据出现问题,望赐教!

作者:admin 2021-05-05 我要评论

CREATE TABLE `managesystem`.`department_manager` ( `dm_id` INT NOT NULL, `user_id` VARCHAR(20) NOT NULL, `dm_name` VARCHAR(20) NOT NULL, `dp_id` INT N...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
CREATE TABLE `managesystem`.`department_manager` (
  `dm_id` INT NOT NULL,
  `user_id` VARCHAR(20) NOT NULL,
  `dm_name` VARCHAR(20) NOT NULL,
  `dp_id` INT NOT NULL,
  `is_onjob` TINYINT NOT NULL,
  `co_id` INT NOT NULL,
  PRIMARY KEY (`dm_id`),
  CONSTRAINT `user_id`
    FOREIGN KEY ()
    REFERENCES `managesystem`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
Operation failed: There was an error while applying the SQL script to the database.
Executing:
CREATE TABLE `managesystem`.`department_manager` (
  `dm_id` INT NOT NULL,
  `user_id` VARCHAR(20) NOT NULL,
  `dm_name` VARCHAR(20) NOT NULL,
  `dp_id` INT NOT NULL,
  `is_onjob` TINYINT NOT NULL,
  `co_id` INT NOT NULL,
  PRIMARY KEY (`dm_id`),
  CONSTRAINT `user_id`
    FOREIGN KEY ()
    REFERENCES `managesystem`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;

ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
    REFERENCES `managesystem`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE ' at line 10
SQL Statement:
CREATE TABLE `managesystem`.`department_manager` (
  `dm_id` INT NOT NULL,
  `user_id` VARCHAR(20) NOT NULL,
  `dm_name` VARCHAR(20) NOT NULL,
  `dp_id` INT NOT NULL,
  `is_onjob` TINYINT NOT NULL,
  `co_id` INT NOT NULL,
  PRIMARY KEY (`dm_id`),
  CONSTRAINT `user_id`
    FOREIGN KEY ()
    REFERENCES `managesystem`.`user` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin

本人是直接往表格里输属性和数据类型,没有手敲sql语句,想问现问题出在哪,该如何解决?不胜感激!
image.png
image.png
image.png

###

问题嘛,应该就是出在你的设置的外键(user_id VARCHAR)和主键(dm_id INT)的数据类型不匹配上。
图片.png

不过自动生成的语句是挺怪的,在外键那小节缺失了外键列和主键列。题主用的是什么版本的 MySQL 和管理工具?

###
CREATE TABLE `department_manager` (
  `dm_id` INT NOT NULL,
  `user_id` VARCHAR(20) NOT NULL,
  `dm_name` VARCHAR(20) NOT NULL,
  `dp_id` INT NOT NULL,
  `is_onjob` TINYINT NOT NULL,
  `co_id` INT NOT NULL,
  PRIMARY KEY (`dm_id`),
  CONSTRAINT `user_id`
    FOREIGN KEY (user_id)
    REFERENCES `user` (user_id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;

没有指定约束字段和被约束字段,

FOREIGN KEY (user_id)
REFERENCES `user` (user_id)

image.png
后面指定下就可以了

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • mysql数据库填充数据出现问题,望赐教

    mysql数据库填充数据出现问题,望赐教

  • 大家公司的开发框架json工具包是用fast

    大家公司的开发框架json工具包是用fast

  • vuecli创建的项目,cannot read proper

    vuecli创建的项目,cannot read proper

  • 使用Ant design Pro-Descriptions的可

    使用Ant design Pro-Descriptions的可

腾讯云代理商
海外云服务器