Cơ sở dữ liệu 15/11/2026 5 phút

SQLite đo thật — kiểu động và type affinity: một cột khai INTEGER vẫn chứa được chuỗi, cùng giá trị 123 lưu thành integer hay text tùy affinity của cột, và bẫy so sánh khiến 10 đứng trước 2

Phần 9 sê-ri SQLite đo thật: SQLite dùng manifest typing — kiểu là thuộc tính của GIÁ TRỊ chứ không phải của cột. Đo trong container sqlite 3.45.3: một cột khai INTEGER vẫn lưu được integer, text, real, blob, null. Kiểu khai cột chỉ cho một affinity quyết định cách ép khi chèn: cùng chuỗi '123' vào năm cột khác affinity lưu thành integer, text, real, integer, text. Năm quy tắc affinity, với bẫy BOOLEAN và DATE đều thành NUMERIC vì SQLite không có kiểu bool hay date. Hệ quả: cột TEXT sắp xếp số cho ra 10 trước 2; bảng STRICT (từ 3.37) mới ép kiểu thật và từ chối giá trị sai.