MySQL тоже не всегда выдает ошибку.
Пример:
CREATE TABLE `test` (
`id` INT NOT NULL,
`name` VARCHAR( 7 ) NOT NULL,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM;
Запрос:
INSERT INTO test (id, name) VALUES ('6','1234567890');
Есть такой параметр, как sql_mode, который отвечает за совместимость.
Если он выставлен в STRICT_TRANS_TABLES, то тогда вы получите ошибку:
#1406 — Data too long for column 'name' at row 1
А если он пустой или ANSI, то запрос успешно выполнится и просто молча обрежутся данные.
Подозреваю что подобный параметр есть и в Firebird.