在phpMyAdmin中执行SQL建表命令时出现语法错误求助
SQL语法错误排查及修正
你的CREATE TABLE语句存在两个问题,其中一个是直接触发语法报错的核心原因:
核心语法错误:
city字段未指定数据类型
定义city字段时,仅声明了NOT NULL DEFAULT 'agra',但数据库要求任何字段必须先明确数据类型(比如VARCHAR(50)),否则无法识别字段的存储规则,这是导致语法报错的直接原因。次要功能提示:MySQL低版本对CHECK约束的支持问题
若你的MySQL版本为5.7及更早,CHECK(age>=18)的语法虽能通过解析,但该约束实际不会生效。如果需要强制年龄≥18的规则,建议改用触发器或在应用层做校验;升级到MySQL 8.0及以上版本则会正常支持CHECK约束。
修正后的SQL语句
CREATE TABLE `students`.`personal` ( `id` INT(11) NOT NULL UNIQUE , `name` VARCHAR(50) NOT NULL , `age` INT NOT NULL CHECK(`age`>=18), `gender` VARCHAR(1) NOT NULL, `phone` VARCHAR(10) NOT NULL UNIQUE, `city` VARCHAR(50) NOT NULL DEFAULT 'agra' -- 补充了VARCHAR(50)数据类型 );
内容的提问来源于stack exchange,提问作者Nafees k jadoon
相关产品推荐
相关产品推荐

