2

自動インクリメントされた列を持つテーブルに行を挿入するストアド プロシージャがあります。警告が表示されますが、自動インクリメントされた列の値に単に「」を入力すると成功します。現在、エラーを取り除く方法は、挿入値の列を指定することです...「app_table(app_id、name、...)値(...)に挿入」しかし、自動インクリメントされた列は唯一のものですには挿入されません。これを行うためのよりクリーンな方法はありますか?値を挿入しない列を指定したいですか?

4

3 に答える 3

3

おそらく次の警告が表示されます。

mysql> show warnings;
+---------+------+------------------------------------------------------+
| Level   | Code | Message                                              |
+---------+------+------------------------------------------------------+
| Warning | 1264 | Out of range value adjusted for column 'id' at row 1 |
+---------+------+------------------------------------------------------+
1 row in set (0.00 sec)

""auto_increment列の代わりに、を使用するNULLと警告が消えます。auto_increment値は正しくインクリメントされます。ステートメント内のすべての列をリストする必要はありませんinsert(多くの人がそれを良い習慣だと考えていますが)。

于 2009-12-25T17:55:54.723 に答える
1

すべての列に値を指定したくない場合は、挿入する列を指定する必要があります。

を除いてショートカットはありません*

于 2009-12-25T17:49:42.630 に答える
0

id(およびデフォルトまたはnullのままにしておきたい他のフィールド)を除くすべての列にデータを入力するよりも、これを行うためのよりクリーンな方法はありますか?そのようにすると、自動的に生成される情報を除外するだけなので、他のどの方法よりも必要なパラメーターが少なくて済みます。これが最もクリーンな方法のようです。

于 2009-12-25T17:53:13.630 に答える