sql >> Database teknologi >  >> RDS >> PostgreSQL

Oprettelse af en sekvens, hvis værdier er en blanding af tegn og tal

Sådan noget burde være fint:

Opret sekvensen:

CREATE SEQUENCE special_seq;

Opret en funktion, eller ej:

CREATE OR REPLACE FUNCTION
nextval_special()
RETURNS TEXT
LANGUAGE sql
AS
$$
    SELECT 'X'||to_char(nextval('special_seq'), 'FM0000'); 
$$;

Tjek nu om det virker:

SELECT nextval_special() FROM generate_series(1,10);

 nextval_special 
-----------------
 X0001
 X0002
 X0003
 X0004
 X0005
 X0006
 X0007
 X0008
 X0009
 X0010
(10 rows)

Nu kan du oprette tabellen ved hjælp af ovenstående funktion:

CREATE TABLE test (
    id TEXT PRIMARY KEY DEFAULT nextval_special(),
    a int
);

eller bare uden funktion med den simple forespørgsel fra funktionen:

CREATE TABLE test (
    id TEXT PRIMARY KEY DEFAULT 'X'||to_char(nextval('special_seq'), 'FM0000'),
    a int
);


  1. hvordan man beregner den resterende tid med php og mysql?

  2. Er ODP.NET påkrævet til Oracle 11g Client?

  3. Konvertering af årets dag til en dato, hvor nogle datoformater har DDYYYY og nogle har DDDYYYY i oracle

  4. Hvordan kan jeg bestemme strengværdien af ​​Oracles datatype ved dens kode?