2016-08-02 8 views
1

これは簡単な問題ですが、私は優雅なソリューションがあるはずです。私は、デフォルト値now()とタイムスタンプ列であるtable1の末尾に列を追加したい最近デフォルトのタイムスタンプの列でselect * fromにINSERTしてください

insert into table1 select * from table2 where pk = "'.$pk.'"; 

:私はこの文を使用して動作するスクリプトを持っていました。これは、一般的に動作し、私は、上記のステートメントを変更する必要がないように期待していたが、私は新しいタイムスタンプ列を追加した場合、上記のステートメントは、次のエラーで失敗します。ここでは

column count doesn't match value count

+0

もう少し説明してください。あなたのユースケースをよりよく説明できます。 – 1000111

+0

偶然誤ってsave –

+0

'insert into jobticket.flatdestroyed(col1、col2)select col1、col2、.....'タイムスタンプ以外の列を選択して、挿入するとタイムスタンプ以外の列を持つ必要がありますif現在のタイムスタンプとして設定されています。 –

答えて

1

はどちらか、そのための2のソリューションです

insert into table1 (col1, col2) select col1, col2 from table2 where pk = "'.$pk.'"; 

または

クエリで列リストを避けるために、表1に同じ列を作成するには

0

は申し訳ありませんが、多くの場合とすぐことが起こるリストあなたの列を指定私はここで私の質問をstackoverflowで私は動作する何かを試して終了します。質問の文を次のように変更することができましたが、新しい列のデフォルト機能は失われています。この場合、最後の列はハードコードされているため、同じ方法で動作します。

insert into table1 select *, now() from table2 where pk = "'.$pk.'"; 
関連する問題