-2

私のエラー:

1064 - SQL 構文にエラーがあります。10 行目の ')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私のエラーと解決策は何ですか?

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 について私がどれだけお手伝いできるかわかりません) ですが、エラー メッセージを読むと,);.

さらに、3行目に余分なものがあるようで、'使用している構文は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_numberpasswordフィールドに一致しないフィールドを持っていることsalt、またはpasswordSHA1 ハッシュに十分な長さがないことを懸念しています。

于 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
); 

create 構文から構文を修正したところです。HeidiSQL (またはPHPMyAdminなどのツールをダウンロードして、正しい DML 構文を生成するのに苦労する必要がないようにする必要があります)、探しているデフォルトが何であるかを確認してください。すべての整数フィールドのデフォルトとして 0 を必要とせず、すべての varchar または char フィールドのデフォルトとして '' (空の文字列) を必要としないことを確信しています。

あなたはテーブル設計の最良の意思決定者であり、すべてのフィールドを NOT NULL にしたくない場合があり、それらのいくつかは NULL 値を持つこともできます。NULL 値を許可する場合、そのフィールドに DEFAULT を指定する必要はありません。

于 2012-06-13T03:51:56.780 に答える