tenho a seguinte tabela
CREATE TABLE `mview_state` (
`state_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'View State ID',
`view_id` varchar(255) DEFAULT NULL COMMENT 'View ID',
`mode` varchar(16) DEFAULT 'disabled' COMMENT 'View Mode',
`status` varchar(16) DEFAULT 'idle' COMMENT 'View Status',
`updated` datetime DEFAULT NULL COMMENT 'View updated time',
`version_id` int(10) unsigned DEFAULT NULL COMMENT 'View Version ID',
PRIMARY KEY (`state_id`),
KEY `MVIEW_STATE_VIEW_ID` (`view_id`),
KEY `MVIEW_STATE_MODE` (`mode`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='View State'
Com os seguintes dados
https://dbfiddle.uk/?rdbms=mariadb_10.5&fiddle=036fb3a69c75a92769a9262ec4af292e
Eu gostaria de adicionar uma restrição para que quando o view_id
valor da coluna for igual catalogrule_rule
a mode
coluna deve ser igual aenabled
Estou lendo e parece que exigiria uma restrição de verificação, mas não tenho certeza de como criá-la para que todos os outros valores sejam válidos, mas essa condição específica sempre será respeitada.
Portanto, somente se o valor view_id
for catalogrule_rule
então o modo deve ser definido comoenabled
Uma restrição CHECK não permitiria inserir ou atualizar novas linhas que não foram habilitadas no modo como a inserção extra que eu inseri.
Não definiria como ativado
db<>fique aqui