Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có thể tạo một cột với UNIX_TIMESTAMP mặc định trong MySQL không?

Cách MySQL triển khai TIMESTAMP kiểu dữ liệu, nó thực sự đang lưu trữ thời gian của kỷ nguyên trong cơ sở dữ liệu. Vì vậy, bạn chỉ có thể sử dụng TIMESTAMP với giá trị mặc định là CURRENT_TIMESTAMP và áp dụng UNIX_TIMESTAMP() vào nó nếu bạn muốn hiển thị nó dưới dạng int:

CREATE TABLE foo(
  created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

insert into foo values (current_Date()),(now());

select unix_timestamp(created) from foo;
+-------------------------+
| unix_timestamp(created) |
+-------------------------+
|              1300248000 |
|              1300306959 |
+-------------------------+
2 rows in set (0.00 sec)

Tuy nhiên, nếu bạn thực sự muốn kiểu dữ liệu của cột là INT , bạn có thể sử dụng đề xuất của R. Bemrose và đặt nó qua trình kích hoạt:

CREATE TABLE foo(
  created INT NULL
);

delimiter $$

create trigger tr_b_ins_foo before insert on foo for each row
begin
  if (new.created is null)
  then
    set new.created = unix_timestamp();
  end if;
end $$

delimiter ;


insert into foo values (unix_timestamp(current_Date())), (null);

select created from foo;
+------------+
| created    |
+------------+
| 1300248000 |
| 1300306995 |
+------------+
2 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thay đổi bảng thêm ... trước `mã`?

  2. Truy xuất một hàng, với dữ liệu từ bảng cặp khóa-giá trị trong MySQL

  3. PHP - Đặt khóa của mảng truy vấn của tôi làm ID

  4. Thủ tục lưu trữ MySQL

  5. Hiểu biết Tham gia SQL đơn giản?