2017-10-14 6 views
0

いくつかの列を持つ単純なテーブルを作成しようとしています。私は以下を参照、列のいずれかにチェック制約を追加したいと思います:列にチェック制約を追加できません

create table jobs (
    JOB_ID varchar(10) not null, 
    JOB_TITLE varchar(35) not null, 
    MIN_SALARY decimal(6,0), 
    MAX_SALARY decimal(6,0) 
    CHECK(MAX_SALARY<=25000) 
    ); 

これはCHECKラインのエラーを返します。

コンマまたは閉じ括弧が必要です。 (CHECKの近く)

前の行のようにカンマを追加した場合、 MAX_SALARY decimal(6,0),、より多くのエラーが返されます:

シンボル名が必要です。予約されたキーワードは、逆引用符を除いた列名として使用することはできません。 MAX_SALARY

+0

データベースサーバーはありますか? –

+0

@Hackit私はこれに新しいので、私は専門用語ではあまりよく分かりません。しかし、私はxampp経由でphpMyAdminを実行しています –

+0

okそれは 'MYSQL'です。 –

答えて

0

更新近い文の予期しない先頭近く文の

予期しない最初:

ちょうどそれを変更した後、チェックせずに表を作成し、

create table jobs ( JOB_ID varchar(10) not null, JOB_TITLE varchar(35) not null, MIN_SALARY decimal(6,0), MAX_SALARY decimal(6,0) ); 

ALTER TABLE jobs ADD CHECK (MAX_SALARY<=25000); 

やMySQLで


create table jobs (
    JOB_ID varchar(10) not null, 
    JOB_TITLE varchar(35) not null, 
    MIN_SALARY decimal(6,0), 
    MAX_SALARY decimal(6,0), 
    CHECK(MAX_SALARY<=25000)  
    ); 

SQL Serverの/ Oracleの

create table jobs (
    JOB_ID varchar(10) not null, 
    JOB_TITLE varchar(35) not null, 
    MIN_SALARY decimal(6,0), 
    MAX_SALARY decimal(6,0) CHECK(MAX_SALARY<=25000) 

    ); 

注:CHECK制約はMySQLによってサポートされていませんが、あなたはそれを使用することができ、私は宣言されますが、そのあなたに出力を与えていません!

+0

でサポートされていません。 –

+0

@AugustWilliams Alterテーブルで試すことはできますか? –

+0

'CHECK'は' ADD'と矛盾します –

関連する問題