DROP FUNCTION IF EXISTS unique_string(int); CREATE OR REPLACE FUNCTION unique_string(quantity int) RETURNS TEXT AS $BODY$ SELECT result FROM (SELECT array_to_string( ARRAY ( SELECT substring( '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' FROM (ceil(random()*36))::int FOR 1 ) FROM generate_series(1, $1) ), '' ) as result) r WHERE NOT EXISTS (SELECT 1 FROM mobile WHERE mobile.name = r.result) $BODY$ LANGUAGE sql VOLATILE; SELECT unique_string(16);
2. Phát sinh chuỗi duy nhất gồm số (0..9)
CREATE OR REPLACE FUNCTION unique_number(int) RETURNS TEXT AS $BODY$ SELECT result FROM ( SELECT array_to_string( ARRAY( SELECT chr((48 + round(random() * 9)) :: integer) FROM generate_series(1,$1) ), '' ) as result) r WHERE NOT EXISTS (SELECT 1 FROM mobile WHERE mobile.serial_number = r.result); $BODY$ LANGUAGE sql VOLATILE; SELECT unique_number(16);
Doi type cua mot column
ALTER TABLE mobile ALTER COLUMN numero SET DATA TYPE character varying(16) using numero::varchar(16);
Không có nhận xét nào:
Đăng nhận xét