Ola'
O MySQL executou uma insercao de linha mesmo o valor estando fora da restricao apesar de o campo ter ficado vazio
ALTER TABLE COMPRAS ADD COLUMN FORMA_PAGT ENUM('CARTAO', 'DINHEIRO', 'CHEQUE') DEFAULT 'DINHEIRO';
INSERT INTO COMPRAS (VALOR, DATA, OBSERVACOES, FORMA_PAGT) VALUES (111.11, '2017-10-20', 'NADA A DECLARAR', 'XYZ');
Resultado:
mysql> SELECT * FROM COMPRAS WHERE VALOR=111.11; +----+--------+------------+-----------------+---------+------------+
| id | valor | data | observacoes | BOOLEAN | FORMA_PAGT |
+----+--------+------------+-----------------+---------+------------+
| 44 | 111.11 | 2017-10-20 | NADA A DECLARAR | 0 | |
| 45 | 111.11 | 2017-10-20 | NADA A DECLARAR | 0 | CARTAO |
+----+--------+------------+-----------------+---------+------------+
mysql> DESC compras;
+-------------+------------------------------------+------+-----+----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------------------------+------+-----+----------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| valor | double | YES | | NULL | |
| data | date | YES | | NULL | |
| observacoes | varchar(255) | YES | | NULL | |
| RECEBIDO | tinyint(1) | YES | | 0 | |
| FORMA_PAGT | enum('CARTAO','DINHEIRO','CHEQUE') | YES | | DINHEIRO | |
+-------------+------------------------------------+------+-----+----------+----------------+
6 rows in set (0.01 sec)
Nao deveria ter dado ERRO de insercao?
Obrigado