【问题标题】:Despite giving "not null " condition for a given column, i can seem to enter empty values into the table尽管为给定列提供“非空”条件,但我似乎可以在表中输入空值
【发布时间】:2021-03-30 10:24:13
【问题描述】:

代码:

#创建表

my_cursor.execute("CREATE TABLE test (name VARCHAR(255) NOT NULL, password VARCHAR(255), address VARCHAR(255), DT DATE , email VARCHAR(255), age INTEGER(10), user_id INTEGER AUTO_INCREMENT Primary key)")    
for table in my_cursor:       
  print(table[0])

#插入记录

Record = "INSERT INTO test (name, password, address, DT, email, age) VALUES (%s, %s, %s, %s, %s, %s)"     
RECORD=[input("ENTER YOUR NAME "),input("ENTER YOUR PASSWORD "),input("ENTER YOUR ADDRESS "),input("ENTER YOUR DOB "),input("ENTER YOUR EMAIL "),input("ENTER YOUR AGE ")]   
my_cursor.execute(Record,RECORD)
mydr.commit()

【问题讨论】:

    标签: python mysql sql sql-insert create-table


    【解决方案1】:

    我怀疑您插入的是空字符串 (''),而不是 null 值;这是两个不同的东西。

    not null 约束阻止后者,而不是前者。如果要防止出现空字符串,可以使用检查约束:

    create table test (
        name varchar(255) not null check(name <> ''), 
        password varchar(255), 
        address varchar(255), 
        dt date, 
        email varchar(255), 
        age integer(10), 
        user_id integer auto_increment primary key
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 2019-11-02
      相关资源
      最近更新 更多