Я хочу добавить эту ПРОВЕРКУ в одну из моих таблиц. Я использую Sequelize в node.js API, работающем на Postgres DB.
CHECK (
(
CASE WHEN UserID IS NULL THEN 0 ELSE 1 END
+ CASE WHEN TableID IS NULL THEN 0 ELSE 1 END
+ CASE WHEN FoodID IS NULL THEN 0 ELSE 1 END
+ CASE WHEN RestaurantID IS NULL THEN 0 ELSE 1 END
+ CASE WHEN CategoryID IS NULL THEN 0 ELSE 1 END
+ CASE WHEN ShipID IS NULL THEN 0 ELSE 1 END
)
= 1
)
Итак, мне нужна база данных для принудительной проверки таблицы, где один из этих столбцов должен быть не нулевым, и только один, остальные должны быть нулевыми.
Есть ли способ сделать это в Sequelize?
Я пытался сделать это:
let sql = `ALTER TABLE TestTable
ADD CONSTRAINT check_test CHECK testBool=false;`
await sequelize.query(sql, { type: sequelize.QueryTypes.RAW });
Я только что создал TestTable с столбец testBool только для того, чтобы проверить, работает ли он вообще.
Когда он запускается, я получаю эту ОШИБКУ:
relation "testtable" does not exist
Я не понимаю, почему все имя в нижнем регистре. В определении модели у меня даже есть:
freezeTableName: true
Я вижу таблицу в БД, я могу сохранить в нее строки и т. Д. c ... так что она есть.