Re: Stupid Question

Поиск
Список
Период
Сортировка
Искать
От
Nils Zonneveld
Тема
Re: Stupid Question
Дата
Msg-id
3BB99732.4BBC83C@mbit.nl
Список
Дерево обсуждения
Stupid Question "Rebekah Kirk" <rebekah.kirk@patersons.net>
Re: Stupid Question Devrim GUNDUZ <devrim@oper.metu.edu.tr>


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                            on delete cascade,


Hope this helps,

Nils Zonneveld

-- 
Alles van waarde is weerloos
Lucebert

В списке pgsql-sql по дате отправления
От: Robin's PG-SQL List
Дата:
Сообщение: Re: Aggregate Aggravation
От: Tom Lane
Дата:
FAQ