我的错误:
1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第10行的')'附近使用正确的语法
我的错误是什么,解决方案是什么?
CREATE TABLE login(
user_name VARCHAR(10) NOT NULL DEFAULT",
password VARCHAR(10) NOT 'NULL DEFAULT",
email VARCHAR(30) NOT NULL DEFAULT",
account_type VARCHAR(10) NOT NULL DEFAULT",
ic INT(10) NOT NULL DEFAULT",
telephone_no INT(20) NOT NULL DEFAULT",
pin INT(20) NOT NULL DEFAULT",
gender VARCHAR(10) NOT NULL DEFAULT",
shipping_address VARCHAR(100) NOT NULL DEFAULT",
city VARCHAR(10) NOT NULL DEFAULT",
state VARCHAR(10) NOT NULL DEFAULT",
country VARCHAR(10) NOT NULL DEFAULT",
zip_code INT(10) NOT NULL DEFAULT",
credit_type VARCHAR(10) NOT NULL DEFAULT",
credit_number INT(20) NOT NULL DEFAULT",
cvv2 INT(3) NOT NULL DEFAULT",
);
答案 0 :(得分:1)
这里的MSSQL开发人员(所以不确定我能为您的玩具RDBMS提供多少帮助),但是从阅读错误消息开始,您,
之前会额外);
。
此外,您似乎在第三行有一个额外的'
,而您用于DEFAULT
的语法没有意义(更不用说空字符串''重新设置INT
列。)
也许:
CREATE TABLE login
(
user_name VARCHAR(10) NOT NULL DEFAULT '',
password VARCHAR(10) NOT NULL DEFAULT '',
email VARCHAR(30) NOT NULL DEFAULT '',
account_type VARCHAR(10) NOT NULL DEFAULT '',
ic INT(10) NOT NULL DEFAULT 0,
telephone_no INT(20) NOT NULL DEFAULT 0,
pin INT(20) NOT NULL DEFAULT 0,
gender VARCHAR(10) NOT NULL DEFAULT '',
shipping_address VARCHAR(100) NOT NULL DEFAULT '',
city VARCHAR(10) NOT NULL DEFAULT '',
state VARCHAR(10) NOT NULL DEFAULT '',
country VARCHAR(10) NOT NULL DEFAULT '',
zip_code INT(10) NOT NULL DEFAULT 0,
credit_type VARCHAR(10) NOT NULL DEFAULT '',
credit_number INT(20) NOT NULL DEFAULT 0,
cvv2 INT(3) NOT NULL DEFAULT 0
);
就我个人而言,我担心有人问这个问题有一个名为credit_number
的字段和password
字段,该字段与salt
字段不匹配,password
字段也不够长对于SHA1哈希。
答案 1 :(得分:0)
正确的语法是:
CREATE TABLE login (
user_name VARCHAR(10) NOT NULL DEFAULT '',
password VARCHAR(10) NOT NULL DEFAULT '',
email VARCHAR(30) NOT NULL DEFAULT '',
account_type VARCHAR(10) NOT NULL DEFAULT '',
ic INT(10) NOT NULL DEFAULT 0,
telephone_no INT(20) NOT NULL DEFAULT 0,
pin INT(20) NOT NULL DEFAULT 0,
gender VARCHAR(10) NOT NULL DEFAULT '',
shipping_address VARCHAR(100) NOT NULL DEFAULT '',
city VARCHAR(10) NOT NULL DEFAULT '',
state VARCHAR(10) NOT NULL DEFAULT '',
country VARCHAR(10) NOT NULL DEFAULT '',
zip_code INT(10) NOT NULL DEFAULT 0,
credit_type VARCHAR(10) NOT NULL DEFAULT '',
credit_number INT(20) NOT NULL DEFAULT 0,
cvv2 INT(3) NOT NULL DEFAULT 0
);
我刚刚从您的创建语法中更正了语法,您应该下载一些工具,例如HeidiSQL(或PHPMyAdmin,这样您就不需要努力生成正确的DML语法)并制作确定你正在寻找什么默认值,因为我确信你不需要0作为所有整数字段的默认值,''(空字符串)作为所有varchar或char字段的默认值。
您是表设计的最佳决策者,我确信您可能不希望所有字段都为NOT NULL,其中一些字段也可能具有NULL值。现在,当您允许NULL值时,不需要为该字段指定DEFAULT。