Return-Path: Delivered-To: apmail-db-derby-user-archive@www.apache.org Received: (qmail 59506 invoked from network); 8 Sep 2006 13:26:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Sep 2006 13:26:20 -0000 Received: (qmail 51724 invoked by uid 500); 8 Sep 2006 13:26:19 -0000 Delivered-To: apmail-db-derby-user-archive@db.apache.org Received: (qmail 51510 invoked by uid 500); 8 Sep 2006 13:26:19 -0000 Mailing-List: contact derby-user-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Reply-To: "Derby Discussion" Delivered-To: mailing list derby-user@db.apache.org Received: (qmail 51499 invoked by uid 99); 8 Sep 2006 13:26:19 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Sep 2006 06:26:19 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [192.18.1.36] (HELO gmpea-pix-1.sun.com) (192.18.1.36) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Sep 2006 06:26:18 -0700 Received: from d1-emea-10.sun.com (d1-emea-10.sun.com [192.18.2.120] (may be forged)) by gmpea-pix-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id k88DPvdp023778 for ; Fri, 8 Sep 2006 14:25:57 +0100 (BST) Received: from conversion-daemon.d1-emea-10.sun.com by d1-emea-10.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) id <0J5900I01ZP67K00@d1-emea-10.sun.com> (original mail from Bernt.Johnsen@Sun.COM) for derby-user@db.apache.org; Fri, 08 Sep 2006 14:25:57 +0100 (BST) Received: from [129.159.112.201] by d1-emea-10.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) with ESMTPSA id <0J59004IJZYS3UFH@d1-emea-10.sun.com> for derby-user@db.apache.org; Fri, 08 Sep 2006 14:25:41 +0100 (BST) Date: Fri, 08 Sep 2006 15:25:39 +0200 From: "Bernt M. Johnsen" Subject: Re: ENUM In-reply-to: Sender: Bernt.Johnsen@Sun.COM To: Derby Discussion Reply-to: Bernt.Johnsen@Sun.COM Message-id: <45016F53.2050206@Sun.COM> Organization: Sun Microsystems MIME-version: 1.0 Content-type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 7BIT X-Enigmail-Version: 0.94.0.0 References: User-Agent: Thunderbird 1.5.0.5 (X11/20060831) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Dan Scott wrote: > On the SET datatype: Even the MySQL docs include a section upfront > called "Why you shouldn't use SET" > (http://dev.mysql.com/tech-resources/articles/mysql-set-datatype.html). > It's not an atomic datatype. Bad. > > On ENUM: The SQL standard way of doing the equivalent of ENUM, and > therefore the Derby way, is to define a check constraint on the > column. > > For example, in MySQL you might do something like: > > CREATE TABLE nonstandard ( > sizes ENUM('small', 'medium', 'large') > ); > > Implementing this as a check constraint in Derby, on the other hand, > would look something like: > > CREATE TABLE standard ( > sizes VARCHAR(32) CONSTRAINT sizes_ck CHECK (sizes IN ('small', > 'medium', 'large')) > ); The CHECK constraint is implemented in Derby, and is a portable standard way of doing this. The MySQL enum is neeither standard nor portable. -- Bernt Marius Johnsen, Database Technology Group, Staff Engineer, Technical Lead Derby/Java DB Sun Microsystems, Trondheim, Norway