http://www.perlmonks.org?node_id=996270


in reply to DBI ignoring devide by zero

It's the DBMS (the database backend) that calculates (or effects) results of SQL statements, not DBI.

What DBMS are you using, and what does its errorlog say when you do something that it does not allow?

(The sql you use there is not valid (no semi-colons terminating the statements, invalid insert-syntax), so perhaps it's simply not executed; do you catch errors / follow the database log? )

( update: FWIW, postgres (9.3devel) gives the result you expect. Using commandline client psql:

echo " create table t (v int not null); insert into t values (1) ; insert into t values (10) ; insert into t values (12) ; insert into t values (0) ; select 10/v from t; " | psql -a # -a => echo all input from script -- yields: create table t (v int not null); CREATE TABLE insert into t values (1) ; INSERT 0 1 insert into t values (10) ; INSERT 0 1 insert into t values (12) ; INSERT 0 1 insert into t values (0) ; INSERT 0 1 select 10/v from t; ERROR: division by zero

)