This is one instance where I think PGAdmin would really help. You know what the schema needs to be, yes? Create it will PGAdmin and you can see what some well-formatted PG code looks like. The majority of the differences in syntax between MySQL and PG are *generally* MySQL's fault. MySQL has more unique extensions and shortcuts for SQL than any other RDBMS I know of. Keep in mind, though, that no database is 100% ANSI SQL only. Indeed, I don't know of any database that is 100% ANSI SQL compliant. The relational model does not translate into computer data very well, and the requirements to implement it contradict some pretty basic computer restrictions. At several points along the way, the demands of the theoretical relational model break down and practical applications are used instead. The limitations of modern computers make a true RDB as envisioned by Boyd and Cobb a virtual impossibility (the most obvious reason being that a computer database can only store computerized data). -- Brandon Aiken CS/IT Systems Engineer -----Original Message----- From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of Jim C. Sent: Friday, February 02, 2007 11:37 AM To: pgsql-general@xxxxxxxxxxxxxx Subject: Re: [GENERAL] Postgres SQL Syntax > CREATE TABLE "credits" ( > "person" integer NOT NULL default '0', > "chanid" int NOT NULL default '0', > "starttime" timestamp NOT NULL default '1970-01-01 00:00:00+00', > "role" set('actor','director','producer','executive_producer','writer','guest_s tar','host','adapter','presenter','commentator','guest') NOT NULL default '' > -- CONSTRAINT "chanid_constraint0" UNIQUE ("chanid","starttime","person","role") > -- UNIQUE KEY "chanid" ("chanid","starttime","person","role"), > -- KEY "person" ("person","role") > ); I'm doing this table by table, line by line. Each table, I learn something new about the differences between MySQL and Postgres, I mentally catalog it and I can always look it up in my own code next time for examples. I've a tool that is providing some help but sometimes it chokes. It choked on this one for example. I could use some clues as to how to go about converting this MySQL implementation of roles to Postgres. So far I've been through 5 tables and it is getting easier but I'm still getting stuck now and then. Jim C. ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match -------------------------------------------------------------------- ** LEGAL DISCLAIMER ** Statements made in this e-mail may or may not reflect the views and opinions of Wineman Technology, Inc. or its employees. This e-mail message and any attachments may contain legally privileged, confidential or proprietary information. If you are not the intended recipient(s), or the employee or agent responsible for delivery of this message to the intended recipient(s), you are hereby notified that any dissemination, distribution or copying of this e-mail message is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete this e-mail message from your computer.