Я пытаюсь вставить строку в таблицу, используя sqlalchemy в моем приложении на флешку Python.Но если я не дал никаких значений столбцу, он автоматически вставляет пустую строку.Мне нужно ограничить это.Если нет / не имеет значения, мне нужно пропустить вставку.
Допустим, у меня есть такая таблица,
CREATE TABLE person(
id int(11) AUTO_INCREMENT NOT NULL,
name varchar(50) NOT NULL COMMENT 'Name',
age int(4) NOT NULL COMMENT 'Age',
sex ENUM('M','F') NOT NULL COMMENT 'sex',
CONSTRAINT PK_PERSON PRIMARY KEY (id ASC)
)
data = {'name': 'xyz', 'sex': 'Z'}
Я пытаюсь вставить строкуиспользование объекта json без некоторых значений / не относящихся к делу значений.В то время ему нужно выдать какое-то исключение, но автоматически оно принимает пустую строку.
Я искал почти везде, я не могу найти решение для этого.В табличной модели я также определил это так:
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
age = db.Column(db.Integer, nullable=False)
sex = db.Column(db.String, nullable=False)
Но я не знаю, как оно автоматически принимает пустые строки.
Я вставляю данные вот так:
stmt = Person.__table__.insert().values(data)
db.session.execute(stmt)
db.session.commit()
Ожидаемый ответ: я ожидаю некоторых исключений для столбца пола, таких как недопустимые значения, и для возраста, я не дал никакого значения для ненулевого столбца, поэтому ожидаю исключения и для этого.
Фактический ответ: вставка без каких-либо исключений с использованием пустых строк
id | name | age | sex
1 xyz
* Для возраста и пола значения являются пустыми строками
Помогите мне решить эту проблему.