Dường như nó không đơn giản đối với reordering columns
trong một sqlite3 table
. Ít nhất số sqlite manager
trong firefox
không hỗ trợ tính năng này. Ví dụ, di chuyển cột 2 đến cột3 và di chuyển cột 5 sang cột2. Có cách nào để sắp xếp lại các cột trong bảng sqlite, hoặc với một phần mềm quản lý sqlite hoặc một kịch bản? Cảm ơn.Sqlite3: cách sắp xếp lại các cột trong bảng?
Trả lời
Đây không phải là một nhiệm vụ tầm thường trong bất kỳ DBMS nào. Bạn gần như chắc chắn sẽ phải tạo một bảng mới với thứ tự mà bạn muốn, và di chuyển dữ liệu của bạn từ một bảng đến thứ tự. Không có câu lệnh bảng thay đổi để sắp xếp lại các cột, do đó, trong trình quản lý sqlite hoặc bất kỳ nơi nào khác, bạn sẽ không tìm thấy cách thực hiện điều này trong cùng một bảng.
Nếu bạn thực sự muốn thay đổi thứ tự, bạn có thể làm:
Giả sử bạn có tableA:
create table tableA(
col1 int,
col3 int,
col2 int);
Bạn có thể tạo một TableB với các cột được sắp xếp theo cách bạn muốn:
create table tableB(
col1 int,
col2 int,
col3 int);
Sau đó di chuyển dữ liệu sang bảngB từ bảngA:
insert into tableB
SELECT col1,col2,col3
FROM tableA;
Sau đó, loại bỏ các tableA gốc và đổi tên TableB để TableA:
DROP table tableA;
ALTER TABLE tableB RENAME TO tableA;
Bạn luôn có thể đặt hàng các cột tuy nhiên bạn muốn trong câu lệnh SELECT của bạn, như thế này:
SELECT column1,column5,column2,column3,column4
FROM mytable
WHERE ...
Bạn không nên cần phải "đặt hàng" chúng trong bảng riêng của mình.
Cần phải khớp lược đồ của 2 bảng để dữ liệu có thể được sao chép từ cái này sang cái khác. Nhập khẩu Sqlite3 không khớp với cột khi sao chép. Vì vậy, chúng tôi kết thúc với cột số nguyên dưới cột văn bản chẳng hạn. – user938363
Thứ tự sqlite3 không thành vấn đề. Về mặt khái niệm, không nên, nhưng hãy thử thử nghiệm này để chứng minh rằng nó có:
CREATE TABLE SomeItems (identifier INTEGER PRIMARY KEY NOT NULL, filename TEXT NOT NULL, path TEXT NOT NULL, filesize INTEGER NOT NULL, thumbnail BLOB, pickedStatus INTEGER NOT NULL, deepScanStatus INTEGER NOT NULL, basicScanStatus INTEGER NOT NULL, frameQuanta INTEGER, tcFlag INTEGER, frameStart INTEGER, creationTime INTEGER);
Điền bảng với khoảng 20.000 bản ghi có hình thu nhỏ là jpeg nhỏ. Sau đó làm một vài thắc mắc như thế này:
time sqlite3 Catalog.db 'select count(*) from SomeItems where filesize = 2;'
time sqlite3 Catalog.db 'select count(*) from SomeItems where basicscanstatus = 2;'
Không quan trọng bao nhiêu hồ sơ được trả về, trên máy tính của tôi, truy vấn đầu tiên mất khoảng 0m0.008s và truy vấn thứ hai mất 0m0.942s. Sự khác biệt lớn, và lý do là vì Blob; filesize là trước Blob và basiccanstatus là sau.
Bây giờ chúng tôi đã chuyển Blob vào bảng riêng của nó và ứng dụng của chúng tôi rất vui.
Điều này rất thú vị, mặc dù nó không trả lời câu hỏi. – sapht
Đúng. Câu trả lời của Filipe Silva trả lời câu hỏi.Câu trả lời của tôi là nhiều hơn về lý do tại sao điều này cần phải được thực hiện, tức là xác nhận câu hỏi. Chúng tôi đã phải làm điều đó, và không có một cách tầm thường nào để thay đổi thứ tự, vì vậy chúng tôi đã tạo ra một bảng thứ hai và đặt cột chậm trong bảng đó. Điều này tạo ra sự khác biệt lớn về hiệu suất cho chúng tôi. – user8353681
- 1. Sắp xếp các bảng theo cột jquery
- 2. Cách dễ dàng để sắp xếp lại các cột?
- 3. cột Sắp xếp lại DataTable
- 4. Tôi có thể sắp xếp lại các cột trong bảng một cách hợp lý không?
- 5. tên cột Sắp xếp lại trong R
- 6. Làm cách nào để sắp xếp lại các cột Mysql?
- 7. Sắp xếp lại các cột trong Zurb Foundation
- 8. Python - sắp xếp lại các cột trong một csv
- 9. C# sắp xếp bảng theo 2 cột
- 10. Cách sắp xếp các hàng theo một trong các cột?
- 11. Sắp xếp lại thứ tự cột trong Navicat
- 12. Cột này tồn tại và cách sắp xếp lại các cột trong khung dữ liệu R
- 13. Javafx: Sắp xếp lại một cột trong một TableView
- 14. Sắp xếp lại các cột của mảng 2D numpy
- 15. Sắp xếp lại các cột dữ liệu trong khi bỏ qua các cột không xác định
- 16. các cột sắp xếp trong Matlab
- 17. Cách sắp xếp lại các phiên TMUX?
- 18. Cách sắp xếp lại các cột trong chế độ xem lưới động
- 19. Cách sắp xếp/sắp xếp bảng phụ thuộc 2D
- 20. sắp xếp csv theo cột
- 21. Cách sắp xếp các cột số và chữ trong Vim
- 22. Python Pandas - Sắp xếp lại các cột trong một khung dữ liệu dựa trên tên cột
- 23. Cách sắp xếp nhiều bảng trong JFrame
- 24. Cách bỏ qua sắp xếp bảng trong phpmyadmin
- 25. sắp xếp lại các hàng trong bảng bằng cách kéo trong Lion
- 26. MYSQL: làm thế nào để "sắp xếp lại" một bảng
- 27. GCC - Cách sắp xếp lại ngăn xếp?
- 28. sqlite3: tạo bảng không có cột
- 29. Làm cách nào để sắp xếp lại các cột trong một DataGridView?
- 30. Sắp xếp lại các mảng thưa thớt bằng cách hoán đổi các hàng và cột
Đối với lệnh chèn vào tabelB ở trên, nó có giữ id không? Chúng ta cần bản ghi trong bảng mới có cùng id như trong bảng A. – user938363
Chắc chắn. nếu một trong các cột đó là id, nó sẽ được di chuyển sang bảng mới. –
@FilipeSilva Nếu cột ID được đặt thành AUTOINCREMENT thì sao? – pavitran