4

基本的に、私は一般的なSQLステートメント用のPHPクラスを持っています。

  1. object.table('table_name')'table_name'table_schemaからプルアウトするための列名を配列に入力します

  2. object.insert(data_array)'table_name'列配列とdata_arrayを使用して挿入ステートメントを実行します

  3. object.select('where')'table_name'whereステートメント入力を使用してすべてを返すか、まったく返しません

私は怠惰で、コードをもっときれいにしたかったので、これを行いました。ただし、スキーマルックアップはIDテーブルから列を返します。これは、で返す必要がある場合があるため、問題ありませんobject.select()。しかし、それはobject.insert()ちょっと難しいです。

自動増分列に正確に挿入できるSQL機能はありますか、それとも目の前にもっと簡単な解決策があり、私は完全なモロンになっています。

4

3 に答える 3

2

自動インクリメント列はに挿入できません。挿入を実行して(自動インクリメントフィールドをバイパスして)、自動生成されたIDを受け入れることができます...

于 2012-10-09T23:03:12.347 に答える
1

挿入ステートメントからid列を省略しlast_insert_id()、最後に挿入されたキーをフェッチするために使用する必要があります

于 2012-10-09T23:04:42.347 に答える
1

使用しているrdbmsはわかりませんが、SQLサーバーでは、次の方法でID列への挿入を許可できます。

SET IDENTITY_INSERT dbo.MyTable ON

しかし、なぜあなたがそれをしたいのかわかりません...

代わりに、object.table('table_name')を実行する場合は、列名だけでなく、たとえばColumnName、DataType、IsIdentityなどを収集します。多次元配列またはクラスで収集できます。

次に、挿入/選択時に、IsIdentityの列を除外できます。データ型を知ることは、挿入を作成するときにも役立ちます。

于 2012-10-09T23:26:23.483 に答える