mysql:16700
From: ds1i-hsmt <ds1i-hsmt <ds1i-hsmt@xxxxxxxxxx>>
Date: Wed, 10 Aug 2022 10:52:03 +0900 (JST)
Subject: [mysql 16700] INSERT SELECT でのテーブル別名の使い方
久光と申します テーブル名tableAのカラム名id(UNSIGNED INT)の欠番を埋めながらレコードを追加するSQL文として 下記を考えました。 INSERT INTO `tableA` (`id`, ・・・) SELECT IFNULL((`id` + 1), 1) AS `minID`, ・・・ FROM `tableA` AS t1 WHERE NOT EXISTS (SELECT * FROM `tableA` AS t2 WHERE (t1.id + 1) = t2.id) LIMIT 1 問題なく動作しているようなので一安心しているのですが INSERT INTO `tableA` AS t0 (t0.id, ・・・) のように最初のテーブルに別名をつけずに動作しているのが気になっています。 INSERT ....SELECT...だと SELECT内の記述がINSERTに影響しないから問題ないのか 問題あるのにわたしが気づいてない(動作しているようにみえている)のか どうなんでしょうか。
-> @ 16700 2022-08-10 10:52 [ds1i-hsmt <ds1i-hsmt] INSERT SELECT でのテーブル別名の使い方 16701 2022-08-10 11:12 ┗[yoku0825 <yoku0825@x] Re: [mysql 16700] INSERT SELECT でのテーブル別名の使い方