2017-03-02 9 views
0

I持って、私は、MySQLから変換していますこのコード:MS SQL Serverの:主キー、自動インクリメント、および失敗に挿入

CREATE TABLE "odds_soccer" 
(
    "id" INT NOT NULL PRIMARY KEY , 
    "checked" DATETIME NOT NULL , 
    "bookmaker" VARCHAR(255) NOT NULL , 
    "gametime" DATETIME NOT NULL , 
    "team1" VARCHAR(255) NOT NULL , 
    "team2" VARCHAR(255) NOT NULL , 
    "odds_1" FLOAT NOT NULL , 
    "odds_x" FLOAT NOT NULL , 
    "odds_2" FLOAT NOT NULL 
); 

INSERT INTO "odds_soccer" ("id", "checked", "bookmaker", "gametime", "team1", "team2", "odds_1", "odds_x", "odds_2") 
VALUES (null, '2017-03-02 16:00:00', 'example.com', '2017-03-02 04:30:00', 'MYTEAMA', 'MYTEAMB', '3.15', '3.15', '2.70'); 

唯一の問題は、それは私が挿入するためにnullを使用できないことbarfs ...ですそれは十分です...

私はどのようにレコードを挿入しますか?私は単純にIDを自動インクリメントにします。

私は様々なバリエーションを試してみました - すべての失敗 - 私は何かを明らかに不足しているしなければならない...

+3

MS SQLは、SQL-Serverのではなく、MySQLのです。今後、正しいタグを使用してください。 – Barmar

+0

Barmar氏によると、この質問のタグとタイトルを更新してください。あなたの質問はMySQL用です。 –

+0

私はそれがエラーだったMySQLにタグを付けると。 MS SQL – Tom

答えて

1

を正しいアプローチは以下の通りです:

CREATE TABLE "odds_soccer" (
    "id" INT IDENTITY(1,1) PRIMARY KEY , 
    "checked" DATETIME NOT NULL , 
    "bookmaker" VARCHAR(255) NOT NULL , 
    "gametime" DATETIME NOT NULL , 
    "team1" VARCHAR(255) NOT NULL , 
    "team2" VARCHAR(255) NOT NULL , 
    "odds_1" FLOAT NOT NULL , 
    "odds_x" FLOAT NOT NULL , 
    "odds_2" FLOAT NOT NULL 
); 

そして、このようごidフィールドが自動インクリメントされます新しいレコードをテーブルに挿入するたびに表示されます。 idフィールドの自動インクリメントがある場合は、insertステートメントで指定する必要はありません。

INSERT INTO "odds_soccer" 
(
    "checked", 
    "bookmaker", 
    "gametime", 
    "team1", 
    "team2", 
    "odds_1", 
    "odds_x", 
    "odds_2" 
) 
VALUES (
    '2017-03-02 16:00:00', 
    'example.com', 
    '2017-03-02 04:30:00', 
    'MYTEAMA', 
    'MYTEAMB', 
    '3.15', 
    '3.15', 
    '2.70' 
); 

Link to documentation(IDENTITY)

+0

だったはずです!問題は昨日何だったのか分かりませんが、今日もう一度試してみました。回答が受け入れられる – Tom

関連する問題