次のMySQL構文は正しく動作します。
SELECT
IF (
(SELECT COUNT(id) FROM preorder) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder)
) AS X
これは、私にテーブルプリオーダーに挿入したい値を与えます。試してみたら
INSERT INTO preorder (id)
VALUES
(SELECT
IF (
(SELECT COUNT(id) FROM preorder) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder)
) AS X)
それはもはや動作しません。 MySQLはちょうど私にmenual :-)を読むように言います
構文の目的は、独自の自動インクリメンタルフィールドを作成できることです。カウントがゼロの場合は1を挿入し、カウントがゼロでない場合はidカラムの最大値を挿入します。
編集:
私はそれが次の構文で動作するように管理しました:
INSERT INTO preorder (id)
VALUES
(
IF (
(SELECT COUNT(id) FROM preorder AS Y) = 0,
1,
(SELECT MAX(id) + 1 FROM preorder AS X)
)
)
より良い方法がありますか?