[thelist] mysql: unique constraing and null default

Aleem Bawany aleem.bawany at utoronto.ca
Sat Mar 1 11:57:04 CST 2003


>> What should I do? (this sql biz is no fun)
>
> take up a career with no exposure to sql?
>
> ;o)
>

It always seems to pop up, one way or the other. Hopefully
it'll start growing on me soon (I found a really interesting
read: http://www.extropia.com/tutorials/sql/toc.html )

>
> as always, when in doubt, test
>
> i'm happy to report that it does work in mysql --
>

I'm happy too. I was previously using '' instead of
NULL, thinking '' would default to NULL since NULL
was set as the default.

I now read up and have realized that to have a default
value inserted I must use something like this:

CREATE TABLE defaultvaluetest (
  id smallint(3) NOT NULL auto_increment,
  name char(3) NOT NULL default 'ano',
  handle char(3) NOT NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY handle (handle)
);

INSERT INTO defaultvaluetest(id,name,handle)
       VALUES (NULL,'foo',foo');
# next two resort to default name
INSERT INTO defaultvaluetest
       SET handle='bar';
INSERT INTO defaultvaluetest (handle)
       VALUES(joe');

SELECT * from defaultvaluetest;

1 foo foo
2 ano bar
3 ano joe

Worthy of mention, for other sql amateurs like myself.

aleem

[ http://aleembawany.com/ ]




More information about the thelist mailing list