解决错误代码:1005。无法创建表 '' (errno: 150) 错误

2023-12-01

我正在 mysql 中创建以下三个表

  1. 邮政局长
  2. 广告
  3. 候选人主

这是创建语句

邮政局长

CREATE TABLE `postmaster` (
  `POSTCODE` int(2) NOT NULL DEFAULT '0',
  `POSTNAME` varchar(250) DEFAULT NULL,
  PRIMARY KEY (`POSTCODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

广告

CREATE TABLE `advertisment` (
  `ADVTNO` varchar(35) NOT NULL,
  `ADVTDATE` date NOT NULL,
  `POSTCODE` int(2) NOT NULL,
  `ADVTOPENDATE` date NOT NULL COMMENT 'ADVERTISEMENT OPENING DATE',
  `ADVTCLOSEDATE` date NOT NULL COMMENT 'ADVERTISEMENT CLOSING DATE',
  `EDITCLOSEDATE` date NOT NULL COMMENT 'CLOSING DATE FOR EDITING APPLICATION',
  `LASTREPRINTDATE` date NOT NULL COMMENT 'LAST DATE FOR REPRINTING APPLICATION',
  `FEESCST` int(4) NOT NULL COMMENT 'FEE FOR SC/ST CATEGORY',
  `FEESTAFF` int(4) DEFAULT NULL COMMENT 'FEE FOR STAFF ',
  `FEEOBC` int(4) DEFAULT NULL COMMENT 'FEE FOR OBC CATEGORY',
  `ADVOCATEEXPERIENCE` int(2) DEFAULT NULL,
  PRIMARY KEY (`ADVTNO`,`ADVTDATE`,`POSTCODE`),
  KEY `fk_post` (`POSTCODE`),
  CONSTRAINT `fk_post` FOREIGN KEY (`POSTCODE`) REFERENCES `postmaster` (`POSTCODE`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

到这里为止一切都很好,但是当我去创造时CANDIDATEMAIN表我收到错误

这是创建语句候选人主

CREATE TABLE `candidatemain` (

  `ADVTNO` varchar(35) NOT NULL DEFAULT '',
  `ADVTDATE` date NOT NULL DEFAULT '0000-00-00',
  `POSTCODE` int(2) NOT NULL DEFAULT '0',
  `REGISTRATIONNO` int(6) NOT NULL DEFAULT '0',
  `SALUTATION` varchar(10) NOT NULL,
  `FULLNAME` varchar(90) NOT NULL,
  `SURNAME` varchar(30) DEFAULT NULL,
  `NAME` varchar(30) NOT NULL,
  `LASTNAME` varchar(30) DEFAULT NULL,
  `LASTUPDATEDIP` varchar(20) NOT NULL DEFAULT '',
  `LASTUPDATEDDATE` date DEFAULT NULL,
  `ENTRYDATE` date NOT NULL,
  PRIMARY KEY (`ADVTNO`,`ADVTDATE`,`POSTCODE`,`REGISTRATIONNO`),
  KEY `FK_ADVT` (`ADVTNO`, `ADVTDATE`,`POSTCODE`) ,
  CONSTRAINT `FK_ADVT` FOREIGN KEY (`ADVTNO`, `ADVTDATE`,`POSTCODE`) REFERENCES `advertisment` (`ADVTNO`, `ADVTDATE`,`POSTCODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我得到的错误是:

Error Code: 1005. Can't create table 'dbName.candidatemain' (errno: 150)

导致此错误的原因可能是什么?

MYSql版本:mysql 版本 14.14 Distrib 5.1.53,适用于 Win64


Create advertisment默认字符集为的表utf8;

latin1列不等于utf8列。因此外键约束不能正确形成。因此1005 (ER_CANT_CREATE_TABLE) error.

这是我的 mysql 日志。

mysql> CREATE TABLE `advertisment` (
    ->   `ADVTNO` varchar(35) NOT NULL,
    ->   `ADVTDATE` date NOT NULL,
    ->   `POSTCODE` int(2) NOT NULL,
    ->   `ADVTOPENDATE` date NOT NULL COMMENT 'ADVERTISEMENT OPENING DATE',
    ->   `ADVTCLOSEDATE` date NOT NULL COMMENT 'ADVERTISEMENT CLOSING DATE',
    ->   `EDITCLOSEDATE` date NOT NULL COMMENT 'CLOSING DATE FOR EDITING APPLICATION',
    ->   `LASTREPRINTDATE` date NOT NULL COMMENT 'LAST DATE FOR REPRINTING APPLICATION',
    ->   `FEESCST` int(4) NOT NULL COMMENT 'FEE FOR SC/ST CATEGORY',
    ->   `FEESTAFF` int(4) DEFAULT NULL COMMENT 'FEE FOR STAFF ',
    ->   `FEEOBC` int(4) DEFAULT NULL COMMENT 'FEE FOR OBC CATEGORY',
    ->   `ADVOCATEEXPERIENCE` int(2) DEFAULT NULL,
    ->   PRIMARY KEY (`ADVTNO`,`ADVTDATE`,`POSTCODE`),
    ->   KEY `fk_post` (`POSTCODE`),
    ->   CONSTRAINT `fk_post` FOREIGN KEY (`POSTCODE`) REFERENCES `postmaster` (`POSTCODE`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- <== This little change make it work.
Query OK, 0 rows affected (0.06 sec)

mysql> CREATE TABLE `candidatemain` (
    ->
    ->   `ADVTNO` varchar(35) NOT NULL DEFAULT '',
    ->   `ADVTDATE` date NOT NULL DEFAULT '0000-00-00',
    ->   `POSTCODE` int(2) NOT NULL DEFAULT '0',
    ->   `REGISTRATIONNO` int(6) NOT NULL DEFAULT '0',
    ->   `SALUTATION` varchar(10) NOT NULL,
    ->   `FULLNAME` varchar(90) NOT NULL,
    ->   `SURNAME` varchar(30) DEFAULT NULL,
    ->   `NAME` varchar(30) NOT NULL,
    ->   `LASTNAME` varchar(30) DEFAULT NULL,
    ->   `LASTUPDATEDIP` varchar(20) NOT NULL DEFAULT '',
    ->   `LASTUPDATEDDATE` date DEFAULT NULL,
    ->   `ENTRYDATE` date NOT NULL,
    ->   PRIMARY KEY (`ADVTNO`,`ADVTDATE`,`POSTCODE`,`REGISTRATIONNO`),
    ->   KEY `FK_ADVT` (`ADVTNO`, `ADVTDATE`,`POSTCODE`) ,
    ->   CONSTRAINT `FK_ADVT` FOREIGN KEY (`ADVTNO`, `ADVTDATE`,`POSTCODE`) REFERENCES `advertisment ` (`ADVTNO`, `ADVTDATE`,`POSTCODE`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.12 sec)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决错误代码:1005。无法创建表 '' (errno: 150) 错误 的相关文章

  • SQL - 选择具有最大值的所有行

    我有这个 SQL 查询 SELECT id COUNT AS price FROM SELECT FROM rt WHERE somecondition AS st JOIN tt ON st id tt id GROUP BY id 现在
  • 使用 Groovy 连接到 MySQL

    我正在尝试在 MAC OS 10 10 5 Yosemite 上使用以下 Groovy 代码连接到 MySQL 数据库 import groovy sql Sql try def dbURL jdbc mysql localhost 330
  • 不同的数据库使用不同的名称引用吗?

    例如 mysql引用表名使用 SELECT FROM table name 注意 其他数据库是否使用不同的字符来引用其表名 这种引号的使用称为分隔标识符 它是 SQL 的重要组成部分 因为否则您将无法使用以下标识符 例如表名和列名 包含空格
  • Mysql - 如何搜索26条以字母开头的记录?

    基本上 我正在尝试创建一个查询 该查询可以根据英语字母表中的字母 26 个字母 从表中检索 26 个单词 所以 苹果 香蕉 椰子 等等 我一直在使用 like a 所以 SELECT from word WHERE word name li
  • NodeJS MySQL - 如何知道连接是否释放

    我正在开发 NodeJS MySQL Web API 我在用mysql https www npmjs com package mysqlnpm 模块 我想知道连接是否已释放 是否有任何函数或变量 喜欢 if connection isRe
  • SQL IN 子句比单个查询慢

    我正在使用 Hibernate 的 JPA 实现和 MySQL 5 0 67 MySQL 配置为使用 InnoDB 在执行 JPA 查询 转换为 SQL 时 我发现使用IN子句比执行单个查询慢 例子 SELECT p FROM Person
  • 使用 JdbcTemplate 进行动态查询

    我有一个关于使用 JdbcTemplate 进行动态查询的问题 我的代码如下 String insertQueries INSERT INTO tablename StringJoiner joiner new StringJoiner S
  • 为 Codeigniter 中的 foreach() 提供的参数无效

    我收到错误消息 我的视图中 foreach 的参数无效 我想显示 mysql 表中的所有条目 但我不断收到错误消息 我是 Codeigniter 的新手 无法真正弄清楚如何解决这个问题 代码如下 我的模型 display branch ph
  • 在MySQL中永久设置auto_increment_offset

    我以 root 身份运行命令 set auto increment offset 2 但从其他连接上看不到效果 为什么不 它是全球性的 From http dev mysql com doc refman 5 1 en replicatio
  • Node.js - 我可以在 PhoneGap / Cordova 应用程序上安装 NPM 包吗?

    感谢 Cordova 我正在构建一个移动应用程序 并且由于 Cordova 基于 Node js 我认为我可以在应用程序中使用 NPM 包 例如 我希望我的移动应用程序能够与远程 MySQL 数据库通信 我想我可以使用 mysql NPM
  • MYSQL:如何从姓氏中找到player_id?

    我现在尝试使用非标准化 摘要 表中的数据填充 testMatch 表 如下 测试匹配表 Field Type Null Key Default Extra match id int 11 NO PRI NULL match date dat
  • MySQL - 如何按相关性排序? INNODB表

    我在一个名为 cards 的 INNODB 表中有大约 20 000 行 所以 FULLTEXT 不是一个选项 请考虑这张表 id name description 1 John Smith Just some dude 2 Ted Joh
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • 数据太长,导致列错误(包含国家字符)

    我必须移植一些DBS变成独立的MySQL版本 5 0 18运行于Windows 7 64 位我遇到了一个困扰我的问题 如果我尝试将任何国家 Unicode 字符插入varchar我收到错误 ERROR 1406 22001 Data too
  • 使用 JOIN 和 UNION 合并不同表中的记录

    我需要创建一个查询来组合两个表中的数据 我认为可能是 JOIN 和 UNION 的组合 在此示例中 我需要列出状态处于活动状态的所有姓名 仅一次 并将他们的葡萄酒 苏打水 晚餐 甜点和水果偏好组合起来 按姓名排序 我不确定单独的 JOIN
  • Mysql - 如何比较两个 Json 对象?

    将整个 MySql json 列与 json 对象进行比较的语法是什么 以下不起作用 select count criteria from my alerts where criteria industries 1 locations 1
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建

随机推荐

  • 如何访问 Angular 2 组件和服务中的常量?

    我有一个常量文件常量 ts export const C0NST constant 我在服务中访问它一些服务 ts像这样 import C0NST from constants console log C0NST constant 但是 当
  • 我如何改进我的 opencv 程序以仅检测人行横道?

    我想检测下图中的人行横道 并用红色填充它 但程序也会检测其他东西 这是我的代码 import cv2 import numpy as np img cv2 imread zebra lane jpg cv2 imshow kep img i
  • 为什么 iOS 9 中纬度和经度显示为零?

    我必须找到当前位置并且我正在使用此代码 CLLocationCoordinate2D getLocation locationManager CLLocationManager alloc init locationManager dele
  • 一个单元格中多个条件的 Excel 匹配索引

    我有一个电子表格 它是根据 Microsoft Sharepoint 中的数据自动填充的 不幸的是 这些数据填充了我的位置列 如下所示 IND ENG USA 例如 如果该特定输入有 3 个位置 然后 我使用下拉框 通过数据验证制作 来过滤
  • 如何修复此正则表达式以便它正确替换 * (在单词之间)?

    我正在练习正则表达式 我想创建正则表达式 into em 就像使用 Markdown 一样 el el replace b g em el el replace b s g 1 em 这在大多数情况下都有效 但是 如果您将正则表达式应用于此
  • 如何将变量的值放入字符串中(将其插入字符串中)?

    我想放一个int into a string 这就是我现在正在做的事情 num 40 plot savefig hanning40 pdf problem line 我必须为几个不同的数字运行该程序 所以我想做一个循环 但是像这样插入变量不
  • For 循环除数

    对于 C 我是一个业余爱好者 但我已经收到了一项超出我知识范围的任务 任务是输入数字 n m 程序必须将其视为一个区间 在区间中检查是否存在相同指数的数字之和 编辑 15 10 18 事实证明我没有正确理解我的任务 这里是 用户输入两个数字
  • 使用 SQL JOIN 和 COUNT

    假设有两张表 一张保存用户信息 一张保存某种类型的用户记录 例如收据 用户和收据之间存在一对多的关系 检索用户 按最大收据数量排序 的最佳 SQL 方法是什么 我能想到的最好方法是使用 join 和 count 返回用户数组及其相关收据数量
  • on:click 在 Svelte 中更新 DOM 时不起作用

    The send random 当我将其添加为新添加的 DOM 中的指令时 它不起作用 for let i 0 i lt items length i data div class block received span class ite
  • Selenium WebDriver CSS 选择器帮助 - 用于选择日期

    我需要从小窗口中选择日期 下面是 html 代码示例 有人可以帮我通过 CSSSelector 或任何其他最适合执行此任务的方式选择日期吗 td class a class ui state default href 1 a td td c
  • Bootstrap - 5 列布局

    我正在尝试获得 5 列全宽布局 但找不到适合我需求的解决方案 这是我使用的代码 div class container div class row div class col lg 12 style border 1px solid red
  • 如何共享 Facebook 页面选项卡内部页面的内容?

    我正在尝试共享页面选项卡内部页面上的内容 此页面上的每个项目都有一个 赞 按钮 我想将用户重定向到该页面并通过 JS 滚动到该项目 我最好不要透露该网站的真实网址 换句话说 分享这样的事情 问题是当我尝试分享上面的网址时 Facebook
  • NSData 存储在某处

    最近我创建了一个帖子 NSData 缓存例程 但是 现在我想更具体地说明我的要求 你看 我有 轮播 这实际上是一个有 7 个图像的滚动视图 当它第一次出现时 它会从互联网加载图像并自动滚动 我的问题是 我不想每次滚动时都加载图像 幸运的是
  • 获取我的 wifi IP 地址 Android

    当手机连接wifi时 如何获取手机的ip地址 我找到了一个方法here但即使我在 wifi 下 它也会返回类似 24 182 239 255 的东西 并且我期望类似 192 168 1 10 的东西 我想要这样的东西 if you are
  • 封送切片结果为字符串

    我正在尝试对一部分进行 json 编码uint8值 但这样做会产生字符串 举个例子 这个 d uint8 1 2 3 4 data err json Marshal d fmt Println string data err 结果是 AQI
  • Firefox 中的全屏背景图像

    我有一个覆盖浏览器屏幕的整个宽度和高度的背景图像 它在 Chrome 和 IE 中工作 但在 Firefox 中图像被下推 有什么想法发生了什么吗 CSS HTML div img src http image iloqal com lib
  • 如何从 Telegram 获取公共频道的消息

    我需要阅读电报应用程序中一些公共频道的消息 我想将电报频道文本存储在文本文件中 我想使用Python 我尝试过电视马拉松 但它太复杂了 我的代码有一些错误 from telethon tl functions messages import
  • 有没有办法返回当前登录的设备用户数?

    有没有办法计算出有多少用户使用 devise 主动登录 Rails 应用程序 轨道3 1 gem 设计 gt 1 4 gem dm devise gt 1 5 with 数据库可验证 我正在专门寻找 ruby 代码 由于与登录相关的所有信息
  • CSS Grid 嵌套在wrapper-div 或body 元素中?

    在这个系列中 他们都使用了包装 div MDN CSS 网格布局 这是必要的吗 如果有 为什么 包装器的用途有很多 包括 按语义对元素进行分组 例如分隔页面标题 来自正文 来自侧边栏 来自页脚 从外观上对元素进行分组 例如使用周围的边框或
  • 解决错误代码:1005。无法创建表 '' (errno: 150) 错误

    我正在 mysql 中创建以下三个表 邮政局长 广告 候选人主 这是创建语句 邮政局长 CREATE TABLE postmaster POSTCODE int 2 NOT NULL DEFAULT 0 POSTNAME varchar 2