Re: Stupid Question

Поиск
Список
Период
Сортировка
От Nils Zonneveld
Тема Re: Stupid Question
Дата
Msg-id 3BB99732.4BBC83C@mbit.nl
обсуждение исходный текст
Ответ на Stupid Question  ("Rebekah Kirk" <rebekah.kirk@patersons.net>)
Список pgsql-sql

Rebekah Kirk wrote:
> 
> I want to create a table and for whatever reason it will not accept the
> command, can anyone say what is wrong as I am very new to Postgres, thanks:
> 


> CREATE TABLE cmpnycontacts (
> ContactNo integer(10) NOT NULL SERIAL,
> CmpnyNo varchar(6) NOT NULL,
> FirstName varchar(30) NOT NULL,
> Surname varchar(30) NOT NULL,
> Phone varchar(20) NOT NULL,
> Mobile varchar(20) NOT NULL,
> Email varchar(40) NOT NULL,
> Country char(2) NOT NULL,
> CONSTRAINT cmpnycontacts_pkey PRIMARY KEY (ContactNo)
> );


Your problem is with the ContactNo, two things:
- there is no specified length for 'integer', so integer(10) would fail
(integer is defined IIRC as int4, meaning an integer that uses four
bytes to store its values).
- the SERIAL keyword defines a integer coupled to a sequence. 

The following statement would work:

CREATE TABLE cmpnycontacts (
ContactNo SERIAL primary key,
CmpnyNo varchar(6) NOT NULL,
FirstName varchar(30) NOT NULL,
Surname varchar(30) NOT NULL,
Phone varchar(20) NOT NULL,
Mobile varchar(20) NOT NULL,
Email varchar(40) NOT NULL,
Country char(2) NOT NULL
);

Its looks like this table has a relationship to a table that holds the
company data. Since PostgreSQL supports referential integrity you could
extend CmpnyNo in the following way:

CmpnyNo varchar(6) not null references Company                            on update cascade
ondelete cascade,
 


Hope this helps,

Nils Zonneveld

-- 
Alles van waarde is weerloos
Lucebert


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Robin's PG-SQL List"
Дата:
Сообщение: Re: Aggregate Aggravation
Следующее
От: Tom Lane
Дата:
Сообщение: Re: strange query execution times