2016-05-29 10 views
0

を作成します。MySQLのこれは、MySQLのための私のSQLクエリでテーブル「閉じ括弧」

DROP DATABASE IF EXISTS java_proj; 

CREATE DATABASE java_proj 
DEFAULT CHARACTER SET utf8 
DEFAULT COLLATE utf8_general_ci; 

USE java_proj; 

CREATE TABLE Konto(
    idKonto SERIAL PRIMARY KEY, 
    login VARCHAR(14) UNIQUE CHECK(LENGTH(login)>4) NOT NULL, 
    haslo VARCHAR(14) CHECK(LENGTH(haslo)>4) NOT NULL, 
    data_rejestracji DATE DEFAULT NOW() NOT NULL, 
    data_urodzenia DATE NOT NULL, 
    imie VARCHAR(30) NOT NULL, 
    nazwisko VARCHAR(30) NOT NULL 
); 

私はloginの行で、どこからともなく、エラーを取得しています。 エラー:Syntax error: 'closing parenthesis'

enter image description here

+3

のMySQLの代わりにCHECKの使用にはいくつかの回避策をについて読むことができます。 –

+0

@juergend:これをMysql Docへの参照と答えとして書くのはどうですか? – EagleRainbow

+0

MySQLには 'SERIAL'もありません。これはPostgreSQL構文のようです:http://sqlfiddle.com/#!15/8e6bd –

答えて

0

MySQLはCHECKをサポートしていないコメントで述べたように。

しかし、あなたはまた、そのクエリと別の問題があります:DATEフィールドが今持っていることはできません()デフォルト値として、あなたがDATETIMEでそれを変更することができますし、

があなたのクエリをクリーンアップデフォルト値としてCURRENT_TIMESTAMPを設定するには、おそらくのようになります。この

CREATE TABLE Konto(
    idKonto SERIAL PRIMARY KEY, 
    login VARCHAR(14) UNIQUE NOT NULL, 
    haslo VARCHAR(14) NOT NULL, 
    data_rejestracji DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    data_urodzenia DATE NOT NULL, 
    imie VARCHAR(30) NOT NULL, 
    nazwisko VARCHAR(30) NOT NULL 
); 

あなたは `check`をサポートしていません。このリンク CHECK constraint in MySQL is not working

関連する問題