我的需求
zh-tw MySQL 生成一個名為 syslog 的資料表,以自動排序的數字為 id [int(11)],有 userID [int(11)]、type [varchar(45)]、description [text]、ip [varchar(45)]、created_at [datetime,current_timestamp() ]
ChatGPT 的回答
以下是在 MySQL 中建立名為 syslog 的資料表的 SQL 語句,符合您所描述的要求:
CREATE TABLE syslog (
id int(11) NOT NULL AUTO_INCREMENT,
userID int(11) NOT NULL,
type varchar(45) NOT NULL,
description text NOT NULL,
ip varchar(45) NOT NULL,
created_at datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
詳細解釋:
- CREATE TABLE syslog:創建一個名為 syslog 的資料表。
- id int(11) NOT NULL AUTO_INCREMENT:id 是一個整數,長度為 11,並啟用自動增量。自動增量可以確保在每次插入資料時,id 的值會自動增加。
- userID int(11) NOT NULL:userID 是一個整數,長度為 11,並且不允許為空。
- type varchar(45) NOT NULL:type 是一個最大長度為 45 的字串,並且不允許為空。
- description text NOT NULL:description 是一個長文本型別,並且不允許為空。
- ip varchar(45) NOT NULL:ip 是一個最大長度為 45 的字串,並且不允許為空。
- created_at datetime NOT NULL DEFAULT current_timestamp():created_at 是一個日期時間型別,並且不允許為空。DEFAULT current_timestamp() 可以保證在每次插入資料時,created_at 的值會自動設置為當前日期時間。
- PRIMARY KEY (id):將 id 設置為主鍵,確保每個記錄都有唯一的 id。
- ENGINE=InnoDB DEFAULT CHARSET=utf8mb4:設置 InnoDB 引擎並使用 utf8mb4 字元集。