SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Loại dữ liệu không khớp (mã 20) trong khi chèn

Tôi nghĩ vấn đề của bạn là với thứ tự cột và quan trọng nhất là hạn chế là bí danh cho cột rowid, trong trường hợp của bạn là Id cột ( Id INTEGER PRIMARY KEY AUTOINCREMENT xác định Id dưới dạng bí danh của cột rowid ).

  • Lưu ý rằng các cột khác có thể lưu trữ bất kỳ giá trị nào theo:-
    • Bất kỳ cột nào trong cơ sở dữ liệu SQLite phiên bản 3, ngoại trừ cột INTEGER PRIMARYKEY, có thể được sử dụng để lưu trữ giá trị của bất kỳ lớp lưu trữ nào.

    • Kiểu dữ liệu trong SQLite Phiên bản 3

Một cột như vậy chỉ có thể lưu trữ một giá trị số nguyên. String sql ="CHÈN VÀO GIÁ TRỊ ẢNH (NULL,?,?,?,?)"; tương đương với việc chèn các giá trị như sau:-

  • NULL vào tên cột
  • tên, như đã được chuyển, vào vĩ độ cột
  • vĩ độ, như đã trôi qua, thành kinh độ cột
  • lon, như đã chuyển, vào hình ảnh cột
  • hình ảnh, như được chuyển, vào cột Id ( tạm biệt [] không thể được lưu trữ trong cột Id)

Bạn có thể khắc phục điều này bằng cách cung cấp tên cột hoặc sắp xếp lại các cột để khớp với thứ tự mà chúng đã được xác định (trước đây được cho là phương pháp tốt hơn).

Như vậy, một trong hai cách sau sẽ khắc phục được sự cố:-

String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";

hoặc:-

String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi không thể đặt nhiều hình ảnh trong chế độ xem lưới?

  2. hướng dẫn xác thực vân tay qua USB sinh trắc học android

  3. Logcat cho biết dữ liệu cột không hợp lệ1

  4. Cách cài đặt SQLite trên macOS

  5. Phát triển cơ sở dữ liệu Android SQLite MultiTable