Anda mencampur dua aspek:
- tipe data mengizinkan nilai certain tertentu untuk kolom PK Anda
- format Anda memilih untuk ditampilkan
AUTO_INCREMENT
adalah konsep MySQL non-standar, SQL Server menggunakan IDENTITY(1,1)
, dll.
Gunakan serial
kolom di Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Itu adalah tipe semu yang diimplementasikan sebagai integer
tipe data dengan gambar default kolom dari SEQUENCE
. bilangan bulat
cukup besar untuk casing Anda (-2147483648 hingga +2147483647).
Jika Anda benar-benar perlu menerapkan angka dengan maksimum 8 digit desimal, tambahkan CHECK
kendala
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Untuk menampilkan nomor dengan cara apa pun yang Anda inginkan - diisi 0 hingga 8 digit, untuk kasus Anda, gunakan to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
Itu sangat cepat. Perhatikan bahwa outputnya adalah text
sekarang, bukan integer
.
SQL Fiddle.
Beberapa hal lain khusus MySQL dalam kode Anda:
int(8)
:gunakanint
.waktu tanggal
:gunakanstempel waktu
.:lepaskan saja.TYPE=INNODB