私はこの声明に頭を悩ませるのに少し苦労しています。アイデアは、データベース内の各プレーヤーの値の単一行でテーブルを初期化することを意図していますが、検索タブでいっぱいのブラウザーから、私が間違っていることを理解することはできません。私が知っているのは、どうやら私の構文がゴミだということだけです。
INSERT INTO tblKebabs
(TransactionID, PlayerID, Amount, Description, Timestamp)
SELECT
(COUNT(tblPlayers.PlayerID)) AS TransactionID,
tblPlayers.PlayerID AS PlayerID,0 as Amount,
"Initializer" as Description,"now" AS Timestamp)
FROM tblPlayers
WHERE tblPlayers.PlayerID > 0;
あなたがしたい場合はTransactionID
、列がためにAUTOINCREMENT
、あなたはそれを定義する必要がCREATE
声明。
あなたはすでにそれを定義している場合INTEGER PRIMARY KEY
、それはすでにAUTOINCREMENT
、あなたが変更に何かをする必要はありません。
上記のいずれもがない場合INTEGER PRIMARY KEY
、SQLiteではこのような変更が許可されていないため、この列のテーブルを再作成する必要がありますALTER
。
これで、ステートメントからこの列を省略できます。
INSERT INTO tblKebabs
(PlayerID, Amount, Description, Timestamp)
SELECT
PlayerID,
0 as Amount,
'Initializer',
CURRENT_TIMESTAMP
FROM tblPlayers
WHERE PlayerID > 0;
SELECT
ステートメントにエイリアスは必要ありません。
また、私は使用しましたCURRENT_TIMESTAMP
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加