3

元のテーブルからデータをコピーし、クエリで指定されたカスタム列を追加する必要があります

元のテーブル構造:col1, col2, col3

テーブル構造体を挿入します。x, col1, col2, col3

INSERT INTO newtable 
   SELECT * 
   FROM original 
   WHERE cond

このエラーが発生します

列数が行1の値数と一致しません

Xこの単一のクエリに値を挿入するにはどうすればよいですか?

私はこのようなものが通過できると思った

INSERT INTO newtable 
   SELECT 'x' = NULL, *  
   FROM original 
   WHERE cond

何か案は?

使用できます*か?そのテーブルには非常に多くの列Xがあり、最初の値である必要があるためです

私はこれがすべて悪いことを知っていますが、信じられないほど醜いdbをさらに悪いphpコードで編集する必要があります

4

3 に答える 3

3

2番目のステートメントはほぼ正しいですが、代わりに'x' = null( )という名前の列に値null xを格納することを想定しています。nullx

INSERT INTO newtable 
SELECT null x, o.* FROM original o WHERE cond
于 2012-08-26T19:54:43.967 に答える
2
Select Null as X, *
into newtable
from original
where ...
于 2012-08-26T19:53:18.227 に答える
1
INSERT INTO newtable 
SELECT null as x, col1, col2, col3 FROM original WHERE cond
于 2012-08-26T19:56:43.063 に答える