B
bvtvba
Guest
(dịch tiếp và hết mục 21)
Tóm lại, ROWID hay _ROWID_ hay OID thì Sqlite đều hiểu đó là ROWID.
Mối quan hệ ROWID và INTEGER PRIMARY KEY
Tôi nghĩ khi nhìn vào đăc tính của ROWID là chúng ta có thể hiểu được, ROWID hoạt động giống như khóa chính INTEGER PRIMARY KEY. Trên thực tế nếu bạn đặt một cột chứa khóa chính INTEGER PRIMARY KEY, thì giá trị của nó hoàn toàn giống với ROWID.
Giả sử như bạn cố ý thiết định giá trị không phải là các số liên tiếp cho khóa chính INTEGER PRIMARY KEY, thì giá trị này được lưu trữ trên cả hai trường thông tin, cột khóa chính INTEGER PRIMARY KEY và ROWID.
Sau đây ta sẽ tiến hành thực nghiệm.
Tôi sẽ tạo một table chứa hai trường thông tin như dưới đây :
Tiến hành nạp dữ liệu:
Kiểm tra dữ liệu:
Từ kết quả trên, chúng ta lấy ROWID nhưng kết quả hiện thị ra lại là tên của cột khóa chính INTEGER PRIMARY KEY.
Tôi không biết chính xác, có lẽ khi có trường thông tin khóa chính thì ROWID sẽ được đặt là cột thông tin này luôn.
Tóm lại, ROWID hay _ROWID_ hay OID thì Sqlite đều hiểu đó là ROWID.
Mối quan hệ ROWID và INTEGER PRIMARY KEY
Tôi nghĩ khi nhìn vào đăc tính của ROWID là chúng ta có thể hiểu được, ROWID hoạt động giống như khóa chính INTEGER PRIMARY KEY. Trên thực tế nếu bạn đặt một cột chứa khóa chính INTEGER PRIMARY KEY, thì giá trị của nó hoàn toàn giống với ROWID.
Giả sử như bạn cố ý thiết định giá trị không phải là các số liên tiếp cho khóa chính INTEGER PRIMARY KEY, thì giá trị này được lưu trữ trên cả hai trường thông tin, cột khóa chính INTEGER PRIMARY KEY và ROWID.
Sau đây ta sẽ tiến hành thực nghiệm.
Tôi sẽ tạo một table chứa hai trường thông tin như dưới đây :
Mã:
create table user (userno integer primary key, name text);
Mã:
insert into user values(1, 'Yamada');
insert into user values(6, 'Suzuki');
insert into user values(3, 'Honda');
Mã:
select *, rowid from user;
Bạn cần đăng nhập để thấy đính kèm
Từ kết quả trên, chúng ta lấy ROWID nhưng kết quả hiện thị ra lại là tên của cột khóa chính INTEGER PRIMARY KEY.
Tôi không biết chính xác, có lẽ khi có trường thông tin khóa chính thì ROWID sẽ được đặt là cột thông tin này luôn.