Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法添加主键约束_Mysql_Sql - Fatal编程技术网

Mysql 无法添加主键约束

Mysql 无法添加主键约束,mysql,sql,Mysql,Sql,我正在尝试创建一个表,并使用altertable添加一个约束,但它不起作用: CREATE TABLE customer ( cust_id NUMBER(3), cust_name VARCHAR2(3), phone_no NUMBER(10) ); ALTER TABLE customer ADD CONSTRAINT pk_customer PRIMARY KEY (cust_id); 这就是错误: 近“约束”:语法错误 我做错了什么?对于mysql尝试 ALTER TA

我正在尝试创建一个表,并使用
altertable
添加一个约束,但它不起作用:

CREATE TABLE customer
(
cust_id NUMBER(3),
cust_name VARCHAR2(3),
phone_no NUMBER(10)
);

ALTER  TABLE  customer
ADD  CONSTRAINT  pk_customer
PRIMARY  KEY  (cust_id);
这就是错误:

近“约束”:语法错误


我做错了什么?

对于
mysql
尝试

ALTER TABLE customer
ADD PRIMARY KEY(cust_id);
或者直接从
创建表

注意mysql中兼容的字段类型

CREATE TABLE customer
(
    cust_id NUMBER(3),
    cust_name VARCHAR2(3),
    phone_no NUMBER(10),
    PRIMARY KEY(cust_id)
);

你的陈述很有效。。。在Oracle数据库中(至少12c1)

为了让查询在MySQL中工作,您需要更改数据类型。(见附件)。例如:

CREATE TABLE customer
(
cust_id DECIMAL(3), -- changed here
cust_name VARCHAR(3), -- changed here
phone_no DECIMAL(10) -- changed here
);

ALTER  TABLE  customer
ADD  CONSTRAINT  pk_customer
PRIMARY  KEY  (cust_id);

或者我认为您需要删除文本“CONSTRAINT pk_customer”。如果您是MySQL新手,可能会发现它很有用。您需要向我们显示完整的错误消息。我还认为你在标签上弄错了。它应该是,而不是这是Oracle数据库。你为什么要使用mysqli?@程序员:你为什么会说它是甲骨文?标签上有个错误。。。请参阅我上面的评论。您的答案还包含Oracle DB提供的
VARCHAR2
。“你可能要考虑到这一点。”达曼,是的,只要按设计复制他的字段就行了。主要的问题是关于PK的,并假设在发出
ALTER
之前,使用
createtable
的第一个查询是有效的(假设只是输入错误)。如果不是,那就是另一个故事了…@Dharman甚至
NUMBER(10)
mysql
中不是一个有效的类型,但这里是供他检查的。很抱歉,回复晚了,我使用了在线)来查找上面的代码,并得到正确的错误,由于
VARCHAR2
NUMBER
在MySQL中不是有效的列类型。我是通过replace all进行测试的,只需将cust_id保留为INT,如下所示:
CREATE TABLE customer(cust_id INT);ALTER TABLE customer ADD CONSTRAINT pk_客户主键(cust_id)但是仍然会出现同样的错误谢谢,它可以工作,但是在这个网站()中,你的代码会出现错误,你能解释一下为什么吗,我不明白,这个网站只针对SQLite,而不是MySQL。完全不同的数据库引擎。