久光と申します

テーブル名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に影響しないから問題ないのか
問題あるのにわたしが気づいてない(動作しているようにみえている)のか
どうなんでしょうか。