簡體   English   中英

未在 MySQL 中創建約束

[英]Constraint not being created in MySQL

我嘗試使用以下查詢創建表

CREATE TABLE customer (
  cust_id INT NOT NULL AUTO_INCREMENT,
  cname VARCHAR(255),
  CONSTRAINT pk_customer PRIMARY KEY (cust_id));

該表已成功創建,並以 cust_id 作為主鍵。 但是,如果我嘗試使用以下查詢刪除約束 pk_customer

   ALTER TABLE customer
   DROP CONSTRAINT pk_customer;

我收到一條錯誤消息:

錯誤代碼:3940。約束“pk_customer”不存在。

我能做些什么來解決這個問題?

在 MySQL 中刪除主鍵的語法是這樣的:

ALTER TABLE customer DROP PRIMARY KEY;

但是,在您上面給出的確切表定義上使用它會產生此錯誤:

表定義不正確; 只能有一個自動列,並且必須將其定義為鍵

如果您將主鍵設為非自動增量列,則上面的ALTER TABLE語句將起作用:

CREATE TABLE customer (
    cust_id INT NOT NULL,
    cname VARCHAR(255),
    CONSTRAINT pk_customer PRIMARY KEY (cust_id)
);

ALTER TABLE customer DROP PRIMARY KEY;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM