【问题标题】:Name ' ' ignored for PRIMARY KEY [MySql MariaDB 10.4.11]PRIMARY KEY [MySql MariaDB 10.4.11] 忽略名称“”
【发布时间】:2020-05-04 15:19:42
【问题描述】:

我的 MAC 上的这些行有问题,在 mariaDB 10.4.11 版本上。

DROP DATABASE IF EXISTS Employe_Programmeurs;
CREATE DATABASE Employe_Programmeurs;
USE Employe_Programmeurs;

CREATE TABLE Employe(
    noEmp      INT(5),
    nom        VARCHAR(10),
    prenom     VARCHAR(10),
    CONSTRAINT pk_Employe_noEmp PRIMARY KEY (noEmp) 
);

它告诉我:

当我在 Windows 上输入这些行时,它会毫无警告地工作,我可以在 SHOW CREATE TABLE 中看到它们。 在 Mac 上,它不会在 SHOW CREATE TABLE 上显示此主键的约束。

我更新、降级了,但仍然没有解决方案。

【问题讨论】:

  • PK 约束总是有一个名字PRIMARY。没有排除、替代和别名。 CREATE TABLE对于 PRIMARY KEY 索引,你可以指定索引的名称,但它会被忽略,并且索引的名称始终是 PRIMARY。
  • @Akina “有一个名字 PRIMARY”是什么意思?
  • @CloudData 所有索引和约束都有一个名称。它们中的大多数允许您在创建它们时指定名称,但主键始终命名为PRIMARY。您尝试将其命名为 pk_Employe_noEmp,但它只能有一个名称。
  • 您是否在 Windows 和 Mac 上运行相同版本的 MariaDB?也许这个限制在版本之间已经改变了。
  • 请通过链接阅读文章。这是文档用词,我只复制它们。

标签: mysql terminal mariadb mariadb-10.4


【解决方案1】:

正如@Akina 提到的,对于 PRIMARY KEY 索引,您可以为索引指定一个名称,但它会被忽略,它的名称将始终是 PRIMARY。

我的问题是我在 windows 上有 2 个不同的版本 (10.4.6),在 mac 上有 (10.4.11)。

所以基本上,10.4.6 版本的 MariaDB 没有显示任何警告,他们在 10.4.11 中更改了这一点,添加了这个警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2016-04-16
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多