On Mon, 15 Jul 2013, Henry Vermaak wrote:

On Mon, Jul 15, 2013 at 04:37:35PM +0200, Michael Van Canneyt wrote:
On Mon, 15 Jul 2013, Henry Vermaak wrote:
Could you explain why the above is bad for those of us that aren't DB
experts?  To my untrained eye it looks fairly plausible, so I'm
obviously missing something.

Simple. The statement

create table a (b int not null, c int not null);

creates a table called 'a', in which the fields b and c are required.
that is, they cannot be NULL.

 mysql> insert into a (b) values (1);

Attempts to insert a record with value NULL for C, which is
explicitly forbidden by the definition of the table.

0 != NULL, it's inserting the default value for the field, which seems
to be 0 for an integer field.

There is no default value specified.

You MUST specify a default value if you want one. If you didn't specify one, the Database engine should not apply one on its own.

Does e.g. postgres error on an insert statement like this?

Yes. As does firebird.

Michael.

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to