關係模型核心在於集合,欄位順序非語義一部分。應用程式永不可依賴 SELECT * 回傳順序,而應顯式列出欄位:
-- 順序由開發者控制
SELECT col1, col2, col3 FROM tbl;
SELECT col1, col3, col2 FROM tbl;
INSERT INTO new_table SELECT col1, col3, col2 FROM old_table;ALTER TABLE new_table RENAME old_table;SELECT * 並按索引讀取欄位(row[0]、row[1])。ALTER TABLE ADD/DROP COLUMN 皆會導致此類程式崩潰。結論:99% 情況下調整查詢欄位列表即可,無需動表結構;物理順序調整僅在極端效能調優(如固定長度表行對齊)時考慮,且需完整回歸測試。