2

PHP コードで SELECT ステートメントを実行するときは、次のような名前付きの列を常に選択します。

SELECT id, name from users;

使用するのではなく:

SELECT * from users;

これには、より有益で読みやすいという利点があり、新しい列がテーブルに追加された場合に後で問題を回避することもできます。

私が疑問に思っているのは、INSERT ステートメントで同じアイデアを使用することは可能ですか? 私はそれが次のようなものかもしれないと想像しています:

INSERT into people values (id=1, name="Fred");

この例で示した構文は機能しませんが、同等のものは可能でしょうか? そうでない場合、誰かが理由を知っていますか? 意図的な省略ですか?

4

9 に答える 9

28
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

INSERT INTO people (id, name)
VALUES (1, 'Fred');
于 2009-01-14T15:08:01.203 に答える
5
INSERT into people(id,name) values (1, 'Fred');
于 2009-01-14T15:08:14.340 に答える
5

あなたが欲しいのは

INSERT INTO PEOPLE ( id, name ) VALUES ( 1, 'FRED' )
于 2009-01-14T15:08:33.463 に答える
4
INSERT INTO table (column_1, column_2, column_3, ...)
VALUES (value_1, value_2, value_3, ...)
于 2009-01-14T15:08:23.683 に答える
4

を使用しINSERT INTO <table> (col1, col2) VALUES (1,2)ます。

于 2009-01-14T15:09:07.770 に答える
3

この方法で試してみてください: INSERT INTO people (id, name) VALUES (1, "Fred");

于 2009-01-14T15:09:05.180 に答える
3

この場合の構文は次のとおりです。

人 (ID、名前) の値 (1, 'Fred') に INSERT します。

少なくとも、私が使用している dbms (PostgreSQL) では動作します。

于 2009-01-14T15:09:56.300 に答える
3

その構文は MySQL でのみ可能です。Afaik、他の RDBMS では許可されていません。構文は次のとおりです。

INSERT INTO games SET yr = 2012, city = 'London';

PostgreSQL がこの種の挿入構文を容易にしてくれたらいいのにと思います

ただし、標準の ANSI 構文は次のようになります。

INSERT to people (yr, city) 値 (2012, 'London');

于 2009-01-14T15:28:09.260 に答える
2

標準の構文を使用すると、一度に複数の行を挿入できます。

INSERT INTO Table (column1,...,columnN) VALUES
(r1v1, ..., r1vN),
(r2v1, ..., r2vN),
(r3v1, ..., r3vN).

これは、一度に1行(特にMySQLの場合)よりもはるか高速なデータのインポート方法です。私はあなたが同じことをすることができるとは思わない

INSERT INTO Table SET column1 = r1v1, ..., columnN = r1vN

構文。

(個人的な経験から、一度に1行ずつ300000行を挿入するには、数分かかりました。スクリプトを変更して、数千行を挿入する挿入ステートメントのみを使用するようにした場合、すべてをインポートするのに数秒しかかかりませんでした。MySQL5.0)。

于 2009-02-14T12:49:18.630 に答える