4

Web サイトで INSERT ON DUPLICATE KEY ステートメントを使用しています。これはニュース アイテムを作成するためのものなので、ニュース アイテムの作成と更新の両方に同じ MySQL コマンドを使用できると考えました。

ただし、次を使用すると:

INSERT INTO table (id,title,content) VALUES(NULL,"Test","Test");

新しい自動インクリメント値を作成する代わりに、エラーをスローします。ただし、コマンドはメインの開発サーバーで機能します。しかし、私のラップトップではありません。MySQL の両方のバージョンは同じです。唯一の違いは、MySQL がサーバーに手動でインストールされ、ラップトップに WAMP がインストールされていることです。

これを引き起こしている可能性のある MySQL 変数はありますか?

4

3 に答える 3

4

使用することをお勧めしますINSERT INTO table (title,content) VALUES("Test","Test");

これにより、新しいインクリメントされた ID を持つ新しい行がテーブルに作成されます。

于 2012-06-10T10:41:10.617 に答える
1

私ができる限りそれを解決することができました。

コードを確認したところ、空の POST された ID を挿入すると、それが引用符で囲まれていることがわかりました。引用符なしで NULL を入れるように変更しました。したがって、クエリは次のようになります。

INSERT INTO table (id,title,content) VALUES(NULL,"test","Test")
ON DUPLICATE KEY UPDATE title=VALUES(title), content=VALUES(content);

それが機能するようになりました。

于 2012-06-10T12:11:37.583 に答える
0

このようなクエリを作成する必要があると思います。

INSERT INTO table (title,content) VALUES("Test","Test");

それでも機能しない場合は、id列が自動インクリメントとして設定されているかどうかを確認してください。

于 2012-06-10T10:43:51.317 に答える