标签: mysql-error-1005

错误代码:1005.无法创建表'...'(错误号:150)

我在互联网上搜索了这个问题的解决方案并检查了SO问题,但没有解决方案适用于我的情况.

我想从表sira_no到metal_kod创建一个外键.

ALTER TABLE sira_no
    ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU)
    REFERENCES metal_kod(METAL_KODU)
    ON DELETE SET NULL
    ON UPDATE SET NULL ;
Run Code Online (Sandbox Code Playgroud)

该脚本返回:

Error Code: 1005. Can't create table 'ebs.#sql-f48_1a3' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

我尝试在索引表中添加索引:

CREATE INDEX METAL_KODU_INDEX ON metal_kod (METAL_KODU);
Run Code Online (Sandbox Code Playgroud)

我在两个表(charset和collat​​ion)上检查了METAL_KODU.但无法找到解决这个问题的方法.有谁有想法吗?提前致谢.

编辑:这是metal_kod表:

METAL_KODU    varchar(4)    NO    PRI
DURUM    bit(1)    NO
METAL_ISMI    varchar(30)    NO
AYAR_YOGUNLUK    smallint(6)    YES        100
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys mysql-error-1005

99
推荐指数
3
解决办法
15万
查看次数

sql错误错误:121

CREATE TABLE `users` (
  `UID` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `username` VARCHAR(45) NOT NULL ,
  `password` VARCHAR(100) NULL ,
  `name` VARCHAR(100) NULL ,
  `gender` BIT NULL ,
  `email` VARCHAR(255) NULL ,
  `phone` VARCHAR(30) NOT NULL ,
  `verified` BIT NOT NULL DEFAULT 0 ,
  `time_zone` INT NULL ,
  `time_register` DATETIME NULL ,
  `time_active` DATETIME NULL ,
  PRIMARY KEY (`UID`) ,
  UNIQUE INDEX `username_UNIQUE` (`username` ASC) ,
  INDEX `verified_INDEX` (`verified` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;


-- …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1064 mysql-error-1005

79
推荐指数
2
解决办法
7万
查看次数

Mysql的.无法创建表errno 150

我必须在mysql中创建一个包含2个表的数据库,但是脚本因errno 150而失败(外键问题).我仔细检查了两个表上的外键字段是否相同,我找不到任何错误.

这是脚本:

 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

 DROP SCHEMA IF EXISTS `testdb`;
 CREATE SCHEMA IF NOT EXISTS `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
 USE `testdb`;

 DROP TABLE IF EXISTS `testdb`.`table1` ;

 CREATE  TABLE IF NOT EXISTS `testdb`.`table1` (
   `id` INT UNSIGNED NOT NULL ,
   `field1` VARCHAR(50) NULL ,
   PRIMARY KEY (`id`) )

 ENGINE = InnoDB;


 DROP TABLE IF EXISTS `testdb`.`table2` ;

 CREATE  TABLE IF NOT EXISTS `testdb`.`table2` (
   `id` INT NOT NULL AUTO_INCREMENT …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-error-1005

68
推荐指数
8
解决办法
9万
查看次数

MySQL"ERROR 1005(HY000):无法创建表'foo.#sql-12c_4'(错误号:150)"

我正在努力在数据库中创建一些表foo,但每次我最终都得到关于外键的errno 150.首先,这是我创建表的代码:

CREATE TABLE Clients
(
client_id                CHAR(10)  NOT NULL ,
client_name              CHAR(50)  NOT NULL ,
provisional_license_num  CHAR(50)  NOT NULL ,
client_address           CHAR(50)  NULL ,
client_city              CHAR(50)  NULL ,
client_county            CHAR(50)  NULL ,
client_zip               CHAR(10)  NULL ,
client_phone             INT       NULL ,
client_email             CHAR(255) NULL ,
client_dob               DATETIME  NULL ,
test_attempts            INT       NULL
);
CREATE TABLE Applications
(
application_id   CHAR(10) NOT NULL ,
office_id        INT      NOT NULL ,
client_id        CHAR(10) NOT NULL ,
instructor_id    CHAR(10) NOT NULL ,
car_id …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys mysql-error-1005

45
推荐指数
6
解决办法
10万
查看次数

MySQL外键错误1005错误150

我正在使用MySQL Workbench做一个小型数据库.我有一个名为"Immobili"的主表,它有一个由四列组成的主键:( Comune,Via,Civico,Immobile).

现在,我还有另外三个表,它们具有相同的主键(Comune,Via,Civico,Immobile),但这些字段也引用了表Immobili.

第一个问题:我可以制作一个也是外键的主键吗?

第二个问题:当我尝试导出更改时,它说:在服务器中执行SQL脚本

# ERROR: Error 1005: Can't create table 'dbimmobili.condoni' (errno: 150)

CREATE  TABLE IF NOT EXISTS `dbimmobili`.`Condoni` (

  `ComuneImmobile` VARCHAR(50) NOT NULL ,
  `ViaImmobile` VARCHAR(50) NOT NULL ,
  `CivicoImmobile` VARCHAR(5) NOT NULL ,
  `InternoImmobile` VARCHAR(3) NOT NULL ,
  `ProtocolloNumero` VARCHAR(15) NULL ,
  `DataRichiestaSanatoria` DATE NULL ,
  `DataSanatoria` DATE NULL ,
  `SullePartiEsclusive` TINYINT(1) NULL ,
  `SullePartiComuni` TINYINT(1) NULL ,
  `OblazioneInEuro` DOUBLE NULL ,
  `TecnicoOblazione` VARCHAR(45) NULL ,
  `TelefonoTecnico` VARCHAR(15) NULL ,
  INDEX `ComuneImmobile` (`ComuneImmobile` ASC) , …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-workbench mysql-error-1005

39
推荐指数
6
解决办法
10万
查看次数

MySQL errorno 121

我在MySQL创建中遇到此错误.我正在做:

CREATE TABLE `blogReply` (

    `Id`      INT(24)      NOT NULL AUTO_INCREMENT COMMENT 'Primary Key of This Table',
    `blogId`  INT(24)      NOT NULL COMMENT 'Blog where this reply was posted',
    `userId`  INT(24)      NULL COMMENT 'User the blog was posted by',
    `name`    VARCHAR(100) NULL DEFAULT 'Unknown' COMMENT 'The Name of the user that the reply was posted by',
    `email`   VARCHAR(100) NULL DEFAULT 'Unknown' COMMENT 'The Email of the user that the reply was posted by',
    `http`    VARCHAR(300) NULL DEFAULT 'Unknown' COMMENT 'The Webaddress of …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys mysql-error-1005

37
推荐指数
2
解决办法
5万
查看次数

外键在MySQL中不起作用:为什么我可以插入不在外部列中的值?

我在MySQL中创建了一个表:

CREATE TABLE actions ( A_id int NOT NULL AUTO_INCREMENT,
type ENUM('rate','report','submit','edit','delete') NOT NULL,
Q_id int NOT NULL,
U_id int NOT NULL,
date DATE NOT NULL,
time TIME NOT NULL,
rate tinyint(1),
PRIMARY KEY (A_id),
CONSTRAINT fk_Question FOREIGN KEY (Q_id) REFERENCES questions(P_id),
CONSTRAINT fk_User FOREIGN KEY (U_id) REFERENCES users(P_id));
Run Code Online (Sandbox Code Playgroud)

这创建了我想要的表(虽然"DESCRIBE actions;"命令向我显示外键是MUL类型的键,我不确定这意味着什么).但是,当我尝试输入问题或用户表中不存在的Q_id或U_id时,MySQL仍然允许这些值.

我做错了什么?如何防止带有外键的表接受无效数据?

更新1

如果我添加TYPE=InnoDB到最后,我收到一个错误:

ERROR 1005(HY000):无法创建表'./quotes/actions.frm'(错误号:150)

为什么会这样?

更新2

我被告知使用功能外键强制数据完整性很重要,但InnoDB也不应该与MySQL一起使用.您有什么推荐的吗?

mysql innodb foreign-keys mysql-error-1005

19
推荐指数
3
解决办法
3万
查看次数

MySQL:使用FK错误创建表(错误150)

我用MySQL Workbench创建了一个模型,现在正尝试将它安装到mysql服务器上.

使用文件>导出>转发工程师SQL CREATE脚本...它为我输出一个很好的大文件,我要求的所有设置.我切换到MySQL GUI Tools(专门用于查询浏览器)并加载这个脚本(请注意,我将从另一个官方MySQL工具开始).但是,当我尝试实际执行此文件时,我反复得到相同的错误

SQLSTATE [HY000]:常规错误:1005无法创建表'./srs_dev/location.frm'(错误号:150)

"好的",我对自己说,位置表有问题.所以我查看输出文件中的定义.

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

-- -----------------------------------------------------
-- Table `state`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `state` ;

CREATE  TABLE IF NOT EXISTS `state` (
  `state_id` INT NOT NULL AUTO_INCREMENT ,
  `iso_3166_2_code` VARCHAR(2) NOT NULL ,
  `name` VARCHAR(60) NOT NULL ,
  PRIMARY KEY (`state_id`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `brand`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `brand` ; …
Run Code Online (Sandbox Code Playgroud)

mysql innodb foreign-keys mysql-error-1005

18
推荐指数
2
解决办法
4万
查看次数

Mysql ERROR 1005(HY000):无法创建表'tmp'(错误号:13)

我在ubuntu 9.10上运行Mysql,Mysql的进程是以root身份运行的,我在登录Mysql时使用root帐户,我给了所有权限,我使用自己的db(不是mysql),我可以创建一个表,但是当我尝试创建临时表时,我收到此错误:

ERROR 1005(HY000):无法创建表'tmp'(错误号:13)

对于此查询:

CREATE TEMPORARY TABLE tmp(id int);

我的硬盘空间很大,所有权限都被授予(var/lib/mysql也有mysql权限).

任何的想法?谢谢,Koby

mysql ubuntu ubuntu-9.10 mysql-error-1005

15
推荐指数
2
解决办法
3万
查看次数

MySQL中的外键添加失败,错误代码为1005,编号为150

所以我试图在我的一个表中添加一个新的外键:

 ALTER TABLE `UserTransactions`.`ExpenseBackTransactions` 
   ADD CONSTRAINT `FK_EBTx_CustomAccountID`
   FOREIGN KEY (`CustomAccountID` )
   REFERENCES `UserTransactions`.`CustomAccounts` (`CustomAccountID`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION,
   ADD INDEX `FK_EBTx_CustomAccountID` (`CustomAccountID` ASC) ;
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误:

Error Code: 1005
Can't create table './UserTransactions/#sql-187a_29.frm' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

我过去对这个表和其他表做了很多改动,这是我第一次遇到这个问题.是什么导致它的想法?

UPDATE

我的SHOW INNODB STATUS错误:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
110525 15:56:36 Error in foreign key constraint of table UserTransactions/#sql-187a_2c:

  FOREIGN KEY (`CustomAccountID` )
  REFERENCES `UserTransactions`.`CustomAccounts` (`CustomAccountID` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
, ADD INDEX …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys mysql-error-1005

14
推荐指数
1
解决办法
7081
查看次数