-2

我的错误:

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",
); 
4

2 回答 2

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字段不匹配的字段,对于 SHA1 哈希salt也不够长。password

于 2012-06-13T03:42:01.107 回答
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 作为所有 Integer 字段的默认值,而 '' (空字符串)作为所有 varchar 或 char 字段的默认值。

您是表设计的最佳决策者,我相信您可能不希望所有字段都为 NOT NULL,其中一些字段也可以具有 NULL 值。现在,当您允许 NULL 值时,您不需要为该字段指定 DEFAULT。

于 2012-06-13T03:51:56.780 回答