/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
problem med check constraint i postgresql
Fra : Trine Banke Brennech~


Dato : 17-09-03 18:33

Hejsa

Jeg bruger postgresql 7.4b1 og har lavet en tabel, der ser ud som følger:

create table site(
desid integer not null primary key,
indhold varchar(15) not null check (indhold in ('Billeder','Lidt
tekst','Mellem tekst','Meget tekst')),
);

Kan det passe, at man ikke kan have mellemrum eller bindestreg i de
forskellige muligheder i check constrainten? Hvis man forsøger at indsætte
Billeder i DBen går det fint, men hvis man forsøger med en af de andre
muligheder går det galt.

Insert-sætningen:
insert into site(desid,indhold) values(9,'Lidt tekst');

Fejlen:
ERROR: ExecInsert: rejected due to CHECK constraint "site_indhold" on "site"

Har noget en forklaring/løsning, vil jeg blive forfærdeligt glad!

Med venlig hilsen
Trine Banke Brenneche



 
 
Nezar Nielsen (30-09-2003)
Kommentar
Fra : Nezar Nielsen


Dato : 30-09-03 11:56

Trine Banke Brenneche wrote:
> Hejsa
>
> Jeg bruger postgresql 7.4b1 og har lavet en tabel, der ser ud som følger:
>
> create table site(
> desid integer not null primary key,
> indhold varchar(15) not null check (indhold in ('Billeder','Lidt
> tekst','Mellem tekst','Meget tekst')),
> );
>
> Kan det passe, at man ikke kan have mellemrum eller bindestreg i de
> forskellige muligheder i check constrainten? Hvis man forsøger at indsætte
> Billeder i DBen går det fint, men hvis man forsøger med en af de andre
> muligheder går det galt.
>
> Insert-sætningen:
> insert into site(desid,indhold) values(9,'Lidt tekst');
>
> Fejlen:
> ERROR: ExecInsert: rejected due to CHECK constraint "site_indhold" on "site"
>
> Har noget en forklaring/løsning, vil jeg blive forfærdeligt glad!
>
> Med venlig hilsen
> Trine Banke Brenneche
>
>

Dit eksempel (uden det overskydende komma i create) virker fint for mig
med pg 7.3.3:

nnbasic=> create table site(desid integer not null primary key,indhold
varchar(15) not null check (indhold in ('Billeder','Lidt tekst','Mellem
tekst','Meget tekst')));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
'site_pkey' for table 'site'
CREATE TABLE
nnbasic=> insert into site(desid,indhold) values(9,'Lidt tekst');
INSERT 39480576 1
nnbasic=> insert into site(desid,indhold) values(10,'Billeder');
INSERT 39480578 1
nnbasic=> select * from site;
desid | indhold
-------+------------
9 | Lidt tekst
10 | Billeder
(2 rows)


Meget niftyt egentligt, på den måde kan man jo repræsentere en ENUM i
postgresql, det var jeg ikke klar over at man kunne..

--
Mvh. Nezar Nielsen
http://fez.dk/


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste