Oliver Duke-Williams wrote:
> Hi,
>
> I'm trying to set up phplib (release 5) for use with postgresql(6.3 I
> _think_ but pg_version is empty, and I can't see an actual version
> number anywhere... ), and having a couple of problems with the supplied
> file create_database.sql (originally written with mySQL in mind).
>
> Specifically, in the first table created:
>
> CREATE TABLE active_sessions (
> sid varchar(32) DEFAULT '' NOT NULL,
> name varchar(32) DEFAULT '' NOT NULL,
> val text,
> changed varchar(14) DEFAULT '' NOT NULL,
> PRIMARY KEY (sid,name),
> KEY changed (changed)
> );
>
> an error is reported:
>
> ERROR: type name lookup of changed failed
>
> (In postgres, do I need to go though a 'create type' process here?)
>
Try
CREATE TABLE active_sessions (
sid varchar(32) DEFAULT '',
name varchar(32) DEFAULT '',
val text,
changed varchar(14) DEFAULT '' NOT NULL,
PRIMARY KEY (sid,name),
);
CREATE [UNIQUE] INDEX {index_name} ON active_sessions USING btree(changed);
-- NOT NULL is implied in a primary key
> and in the second table:
>
> CREATE TABLE auth_user (
> uid varchar(32) DEFAULT '' NOT NULL,
> username varchar(32) DEFAULT '' NOT NULL,
> password varchar(32) DEFAULT '' NOT NULL,
> perms varchar(255),
> PRIMARY KEY (uid),
> UNIQUE k_username (username)
> );
>
> the following error is generated:
>
> ERROR: parser: Syntax error at or near "k_username"
>
> (Will this need some additional command aling the lines of
> 'create unique index'?)
>
And:
CREATE TABLE auth_user (
uid varchar(32) PRIMARY KEY DEFAULT '',
username varchar(32) DEFAULT '' NOT NULL,
password varchar(32) DEFAULT '' NOT NULL,
perms varchar(255)
);
CREATE UNIQUE INDEX username_k ON auth_user USING btree(username);
-- Though correct syntactically, a DEFAULT for any key column rarely makes
good sense.
--
\h create table
-- at the psql prompt display allowable syntax