初学SQL建表遇语法错误:如何修复'near "("'报错?
解决SQL建表语法错误的方案
问题根源
你碰到的Error: near "(": syntax error,主要是因为部分数据库(比如SQLite、PostgreSQL)不支持在int类型后用括号指定长度,只有MySQL等少数数据库允许这种写法。另外你的phoneNumber字段用int类型也存在逻辑问题。
修正后的建表代码
改用通用SQL标准写法,适配绝大多数数据库:
CREATE TABLE clients ( clientID INTEGER, firstName VARCHAR(15), surname VARCHAR(15), email VARCHAR(50), phoneNumber VARCHAR(10) );
关键修改说明
- 移除
int后的括号:把int(5)改成INTEGER(或INT),整数类型的显示长度在现代数据库里基本没用,而且非MySQL数据库不支持这种语法,直接用基础整数类型更稳妥。 - 电话号码改用字符串类型:
phoneNumber从int(10)改成VARCHAR(10),因为电话号码不是数值,可能包含开头0、国际区号的加号,而且超过10位的话int会溢出,字符串存储才是正确选择。
额外排查点
- 确认你的数据库类型:如果用的是MySQL,原代码本身没问题,那要检查是否有全角标点、拼写错误;如果是SQLite,必须去掉
int后的括号。 - 检查语句末尾的分号:确保是英文半角分号,有些编辑器会自动转成全角,这也会导致语法错误。
内容的提问来源于stack exchange,提问作者newtothis
相关产品推荐
相关产品推荐

