我在 MySQL 中声明了下表:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`session_id` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '0',
`ip_address` varchar(16) COLLATE utf8_bin NOT NULL DEFAULT '0',
`user_agent` varchar(150) COLLATE utf8_bin NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT '0',
`user_data` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)
假设我的数据库已经使用 UTF-8 编码,postgres 中表的等效定义是什么?
CREATE TABLE ci_sessions (
session_id varchar(40) NOT NULL DEFAULT '0',
ip_address varchar(16) NOT NULL DEFAULT '0',
user_agent varchar(150) NOT NULL,
last_activity int4 NOT NULL DEFAULT '0',
user_data text NOT NULL,
PRIMARY KEY (session_id)
);
Run Code Online (Sandbox Code Playgroud)
恕我直言,修饰符 IF NOT EXISTS 刚刚被添加到最新的 PostgreSQL 版本之一。
编辑:正如未命名的马推荐的那样,我将第四个属性从十进制(10)更改为int4。但我也更喜欢这里的时间戳(0)。如果您需要微秒精度,则仅使用时间戳而不带 (0)。
| 归档时间: |
|
| 查看次数: |
7849 次 |
| 最近记录: |