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