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

Cách lưu trữ giá trị trống dưới dạng Trường số nguyên

Một chuỗi không phải là một số nguyên; và một chuỗi trống không phải là None hoặc NULL . Những gì bạn cần làm là bắt những trường hợp trường trống và sau đó truyền nó thành None .

foo = "something" # "something" is coming from your CSV file

try:
   val = int(foo)
except ValueError:
   # foo is something that cannot be converted to
   # a number. It could be an empty string, or a
   # string like 'hello'
   # provide a default value
   val = None

# Now use val to insert into the database
f = MyModel()
f.age = val
f.save()

blank hoàn toàn dành cho xác thực giao diện người dùng; nó không có bất kỳ tác động nào đến phía cơ sở dữ liệu:

null mặt khác, liên quan đến cơ sở dữ liệu:

Một IntegerField yêu cầu giá trị có thể được chuyển đổi thành số nguyên, vì vậy khi bạn chuyển vào chuỗi trống , nó không thể cast nó và tạo ra một ngoại lệ. Thay vào đó, nếu bạn nhập None và bạn có age = models.IntegerField(null=True) , nó biết để lưu trữ nó một cách chính xác.

Tóm lại:

  • age = models.IntegerField()

    Trường là bắt buộc và cần giá trị số nguyên hợp lệ. Nó sẽ không chấp nhận None và sẽ không có giá trị rỗng trong cơ sở dữ liệu. Các giá trị hợp lệ là -2147483648 đến 2147483647

  • age = models.IntegerField(null=True)

    Trường là bắt buộc (xác thực biểu mẫu). Nếu trường có None dưới dạng một giá trị, nó sẽ được dịch thành NULL trong cơ sở dữ liệu.

  • age = models.IntegerField(blank=True, null=True)

    Trường không bắt buộc (xác thực biểu mẫu). Nếu trường được chuyển vào None , nó sẽ được dịch sang NULL

  • age = models.IntegerField(blank=True)

    Trường không bắt buộc (xác thực biểu mẫu), nhưng một giá trị số nguyên hợp lệ cần được chuyển vào vì cơ sở dữ liệu không chấp nhận null. Thông thường ở đây, bạn sẽ đặt nó một giá trị mặc định với default=0 hoặc thực hiện một số xác thực trước khi gửi giá trị cho orm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql_fetch_array bỏ qua hàng đầu tiên

  2. Nhóm truy vấn mysql theo khoảng thời gian 15 phút

  3. Tải xuống tệp từ cơ sở dữ liệu MYSQL

  4. Lỗi liên kết truyền thông - gói cuối cùng nhận được thành công từ máy chủ là

  5. Lưu thông tin thẻ tín dụng trong cơ sở dữ liệu MySQL?