相关疑难解决方法(0)

如何将整个MySQL数据库characterset和collat​​ion转换为UTF-8?

如何将整个MySQL数据库字符集转换为UTF-8并将整理转换为UTF-8?

mysql character-encoding

442
推荐指数
8
解决办法
44万
查看次数

MySQL无法添加外键约束

所以我试图将外键约束添加到我的数据库作为项目需求,它在不同的表上第一次或第二次工作,但我有两个表,在尝试添加外键约束时我得到一个错误.我得到的错误消息是:

ERROR 1215(HY000):无法添加外键约束

这是我用来创建表的SQL,两个有问题的表是PatientAppointment.

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

CREATE SCHEMA IF NOT EXISTS `doctorsoffice` DEFAULT CHARACTER SET utf8 ;
USE `doctorsoffice` ;

-- -----------------------------------------------------
-- Table `doctorsoffice`.`doctor`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`doctor` ;

CREATE  TABLE IF NOT EXISTS `doctorsoffice`.`doctor` (
  `DoctorID` INT(11) NOT NULL AUTO_INCREMENT ,
  `FName` VARCHAR(20) NULL DEFAULT NULL ,
  `LName` VARCHAR(20) NULL DEFAULT NULL ,
  `Gender` VARCHAR(1) NULL DEFAULT NULL ,
  `Specialty` VARCHAR(40) NOT NULL DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys

286
推荐指数
7
解决办法
42万
查看次数

MySQL无法创建外键约束

我在创建mysql数据库中现有表的外键时遇到了一些问题.

我有桌子exp:

+-------------+------------------+------+-----+---------+-------+
| Field       | Type             | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+-------+
| EID         | varchar(45)      | NO   | PRI | NULL    |       |
| Comment     | text             | YES  |     | NULL    |       |
| Initials    | varchar(255)     | NO   |     | NULL    |       |
| ExpDate     | date             | NO   |     | NULL    |       |
| InsertDate  | date             | NO   |     | NULL    |       |
| inserted_by | int(11) unsigned …
Run Code Online (Sandbox Code Playgroud)

mysql indexing foreign-keys

55
推荐指数
7
解决办法
4万
查看次数

错误代码:1822.无法添加外键constaint.缺少约束索引

我发现了一些关于错误的线索.但是所有解决方案对我都不起作用.

我创建了2个表用户表和一个用于文章.现在我想存储创建文章的用户和最后一个修饰符的用户.

CREATE TABLE IF NOT EXISTS `testDb`.`users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nickname` VARCHAR(255) NULL,
  `first_name` VARCHAR(255) NULL,
  `last_name` VARCHAR(255) NULL,
  `e_mail` VARCHAR(255) NOT NULL,
  `activated` TINYINT(1) NOT NULL DEFAULT 0,
  `birth_date` DATE NULL,
  `locked` TINYINT(1) NOT NULL DEFAULT 0,
  `locked_date_time` DATETIME NULL,
  `street` VARCHAR(255) NULL,
  `street_number` VARCHAR(255) NULL,
  `city` VARCHAR(255) NULL,
  `postal_code` VARCHAR(255) NULL,
  `country` VARCHAR(255) NULL,
  `phone` VARCHAR(255) NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `user_id_UNIQUE` (`id` ASC)
)
ENGINE = InnoDB
AUTO_INCREMENT = 1;


CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

使用Django将现有的MyISAM数据库转换为InnoDB

无论如何,我可以将一个完整填充的MyISAM数据库转换为InnoDB(以某种方式创建所有外键约束,就像我从头开始运行syncdb命令一样)?

mysql django myisam innodb

8
推荐指数
2
解决办法
4506
查看次数

多列外键:将单列设置为空“ON DELETE”而不是全部

一般:给定多个列的外键,其中一些可能为 NULL。
默认情况下(MATCH SIMPLE)只要多列外键中至少有一列为 NULL,MySQL/MariaDB InnoDB 就不会检查外键。

要求:如果从父级删除一行,则相应子级的一列应设置为 NULL,但外键中的两列不应设置为 NULL。

示例/描述:学生可能会被列入某个讲座的名单,也可能会被列入其中一个讲座小组的名单。如果讲座被删除,所有学生列表(作品)及其所有组(作品)都应被删除。如果仅删除单个组,则学生仍应列出讲座,但不应再将他们分配到组(问题)。

示例/SQL:以下 SQL 说明了此示例,但最后一条语句不起作用,因为最后一个 FOREIGN KEY 要求 LectureId 和 groupId 都可为 NULL,但使两者都可为 NULL 将意味着删除组也会将 LectureId 设置为 NULL 。

CREATE TABLE lectures (
  lectureId INT NOT NULL,
  title VARCHAR(10) NOT NULL,
  PRIMARY KEY (lectureId)
 );

CREATE TABLE groups (
  lectureId INT NOT NULL,
  groupNo INT NOT NULL,
  title VARCHAR(10) NOT NULL,
  PRIMARY KEY (lectureId,groupNo),
  FOREIGN KEY (lectureId) REFERENCES lectures (lectureId)
    ON UPDATE CASCADE ON DELETE CASCADE
 ); …
Run Code Online (Sandbox Code Playgroud)

mysql sql innodb foreign-keys mariadb

6
推荐指数
1
解决办法
2704
查看次数

MySQL错误无法添加外键约束

怎么了?

mysql> create table price(
    -> p_code char(1) not null,
    -> p_description varchar(20),
    -> p_rentfee decimal(2,2) not null,
    -> p_dylatefee decimal(2,2));
Query OK, 0 rows affected (0.18 sec)

mysql> create table movie(
    -> mv_no char(4) not null,
    -> mv_name varchar(50) not null,
    -> mv_year char(4) not null,
    -> mv_cost decimal(2,2) not null,
    -> mv_genre varchar(15) not null,
    -> p_code char(1) not null,
    -> foreign key (p_code) references price(p_code));
ERROR 1215 (HY000): Cannot add foreign key constraint

mysql>
Run Code Online (Sandbox Code Playgroud)

mysql

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

mysql无法添加外键#1215

我已经阅读了很多关于这个错误的回答问题,但没有一个答案似乎能帮我解决问题.

我得到的错误是

#1215 - Cannot add foreign key constraint 
Run Code Online (Sandbox Code Playgroud)

当我这样做时show engine innodb status,它给了我这个信息:

在引用的表中找不到索引,其中引用的列显示为第一列,或者表中的列类型与引用的表不匹配约束.请注意,使用> = InnoDB-4.1.12创建的表中ENUM和SET的内部存储类型已更改,旧表中的此类列不能被新表中的此类列引用.

以下是涉及的表(我正在创建一个创建脚本,并且在执行sql期间出现错误)

CREATE TABLE IF NOT EXISTS customer_type (
    customer_type_id int(11) unsigned NOT NULL AUTO_INCREMENT,
    `type` varchar(128) NOT NULL,
    sort int(11) NOT NULL,
    is_active tinyint(1) NOT NULL DEFAULT '1',
    PRIMARY KEY (customer_type_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS location (
    location_id int(11) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(200) NOT NULL,
    email varchar(255) DEFAULT NULL,
    phone varchar(32) DEFAULT NULL,
    address …
Run Code Online (Sandbox Code Playgroud)

mysql indexing foreign-keys

4
推荐指数
1
解决办法
3026
查看次数