私のクエリは次のようになります。
INSERT INTO table1 (lfd, somedata)
select (select max(lfd) + 1 from table1), somedata from table2
Table2には複数の行があります。したがって、table1に複数の行を挿入する必要があります。これは機能しますが、挿入されたすべての行に対してlfdが同じ数に設定されます。
したがって、挿入された最初の行でmax(ldf)+ 1が「2」の場合、後続のすべての行でも「2」になります。もちろん、次の行のmax(lfd)+ 1は「3」を返すはずなので、これは正しくありません。
挿入ごとにサブクエリを再評価するようにmysqlに指示するにはどうすればよいですか?
あるphp-galleryから別のphp-galleryにデータを移行するため、テーブル構造に触れることができません。テーブルの構造は、アプリケーションの制御下にあります。
Oracleでは、シーケンスを定義し、副選択でsqueencename.nextvalを選択するだけです。-私はそれがうまくいくとかなり確信していますが、mysqlは私が知る限りシーケンスを提供していませんよね?