You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MySQL 1064语法错误求助:新手学习项目中SQL建表语句报错

解决MySQL Error 1064语法错误问题

嘿,我一眼就瞅到你这报错的根源啦——问题出在new_table里的price字段定义上,你把数据类型和精度的顺序写反了!

在MySQL里,数值类型的正确写法是类型在前,精度/长度在后,你写的(10,0) INT NOT NULL完全搞反了顺序,这才触发了1064语法错误。另外还有个小细节:你用的ıd是带点的土耳其语字母i,虽然MySQL支持,但换成通用的id能避免后续可能遇到的字符编码小麻烦,不过这不是报错的直接原因。

下面是修正后的完整SQL代码,你直接运行就能正常创建表啦:

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema filmKategory
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema filmKategory
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `filmKategory` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
USE `filmKategory` ;
-- -----------------------------------------------------
-- Table `filmKategory`.`category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `filmKategory`.`category` (
 `category_id` INT NOT NULL,
 `name` VARCHAR(255) NOT NULL,
 PRIMARY KEY (`category_id`));
-- -----------------------------------------------------
-- Table `filmKategory`.`new_table`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `filmKategory`.`new_table` (
 `id` INT NOT NULL, -- 换成通用的id,可选修改项
 `name` VARCHAR(45) NOT NULL,
 `price` INT(10,0) NOT NULL, -- 修正后的字段定义
 `images` VARCHAR(45) NULL DEFAULT NULL,
 `Stock` VARCHAR(45) NULL DEFAULT '5',
 `Category` VARCHAR(2000) NULL DEFAULT NULL,
 `category_category_id` INT NULL DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 INDEX `fk_new_table_category_idx` (`category_category_id` ASC) VISIBLE,
 CONSTRAINT `fk_new_table_category` FOREIGN KEY (`category_category_id`) REFERENCES `filmKategory`.`category` (`category_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 33 DEFAULT CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

如果之后还有类似语法问题,优先检查字段类型、约束的拼写和顺序,基本都能快速定位到问题~

内容的提问来源于stack exchange,提问作者Harun Emre Yaka

火山引擎 最新活动