sql >> Database >  >> RDS >> PostgreSQL

Een reeks maken waarvan de waarden een combinatie zijn van tekens en cijfers

Zoiets zou goed moeten zijn:

Maak de reeks:

CREATE SEQUENCE special_seq;

Maak een functie aan, of niet:

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

Controleer nu of het werkt:

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

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

Nu kunt u de tabel maken met behulp van de bovenstaande functie:

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

of gewoon zonder functie met de eenvoudige vraag van de functie:

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


  1. Bestellen Door Poolse letters te gebruiken

  2. Tabel splitsen na X aantal rijen &tekst toevoegen in While-lus (met behulp van TCPDF)

  3. Hoe voeg ik een reeks waarden in verschillende kolommen van een mysql-tabel in?

  4. Kolominfo ophalen voor een tabel of weergave in SQL Server (T-SQL:sp_columns)