PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Създаване на последователност, чиито стойности са комбинация от знаци и числа

Нещо подобно би трябвало да е наред:

Създайте последователността:

CREATE SEQUENCE special_seq;

Създайте функция или не:

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

Сега проверете дали работи:

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

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

Сега можете да създадете таблицата с помощта на горната функция:

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

или просто без функция с простата заявка от функцията:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. heroku pg:неуспешно удостоверяване на парола за изтегляне

  2. Как мога да задам отложено ограничение на таблица, първоначално отложено в django модел?

  3. Надстройте PostgreSQL JSON колоната до JSONB?

  4. initdb:инициализиране на pg_authid ... ФАТАЛНО:грешен брой изрази на индекса

  5. Как да конвертирате низ в числова стойност в PostgreSQL