You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL建表时外键约束报错无法执行,求错误原因及解决方法

SQL建表报错问题修复方案

错误原因定位

你代码里一共有3类语法错误,都和字段、约束定义的分隔符、外键语法有关:

  • 创建VENDAS表时,ID_VENDEDOR对应的外键约束定义结束后,没有加逗号分隔后续的ID_CLIENTE字段定义,语法不合法
  • 创建ITENS_VENDAS表时,外键约束的语法错误:外键关联的字段名必须用小括号包裹,你漏写了ID_VENDA、ID_PRODUTO外层的括号
  • 创建ITENS_VENDAS表时,字段、外键约束之间缺少逗号分隔,相邻的两个定义没有符号断开

修正后的完整代码

/* criando as tabelas */
CREATE TABLE CLIENTES (
    IDCLIENTE INT PRIMARY KEY AUTO_INCREMENT,
    CLIENTE VARCHAR(10)NOT NULL,
    ESTADO CHAR(2) NOT NULL,
    SEXO ENUM ('M','F') NOT NULL,
    STATUS VARCHAR (10)
);

CREATE TABLE VENDEDORES (
    IDVENDEDOR INT PRIMARY KEY AUTO_INCREMENT,
    NOME VARCHAR (20) NOT NULL
);


CREATE TABLE PRODUTOS (
    IDPRODUTO INT PRIMARY KEY AUTO_INCREMENT,
    PRODUTO VARCHAR (20) NOT NULL,
    PRECO FLOAT(10,2) NOT NULL
);

CREATE TABLE VENDAS (
    IDVENDA INT PRIMARY KEY AUTO_INCREMENT,
    TOTAL INT NOT NULL,
    ID_VENDEDOR INT,
    FOREIGN KEY (ID_VENDEDOR) REFERENCES VENDEDORES(IDVENDEDOR),
    ID_CLIENTE INT,
    FOREIGN KEY (ID_CLIENTE) REFERENCES CLIENTES(IDCLIENTE) 
);


CREATE TABLE ITENS_VENDAS(
    ID_VENDA INT NOT NULL,
    ID_PRODUTO INT NOT NULL,
    FOREIGN KEY (ID_VENDA) REFERENCES VENDAS(IDVENDA),
    FOREIGN KEY (ID_PRODUTO) REFERENCES PRODUTOS(IDPRODUTO),
    QUANTIDADE INT NOT NULL,
    VALOR_UNITARIO FLOAT(10,2) NOT NULL,
    VALOR_TOTAL FLOAT(10,2) NOT NULL,
    DESCONTO FLOAT(10,2) NOT NULL
);

补充注意事项

SQL中创建表时,所有字段、约束的定义都是同级并列项,每一项结束后必须加逗号分隔,最后一项可以不加;外键约束的标准语法为FOREIGN KEY (当前表关联字段) REFERENCES 关联表(关联表字段),括号不能省略。

内容的提问来源于stack exchange,提问作者Andre Retorta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 04:15:03