MySQL
MySQL
CREATE TABLE orders (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
amount DECIMAL(12,2) NOT NULL DEFAULT 0.00,
status TINYINT NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_user (user_id, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;PostgreSQL
PostgreSQL
CREATE TABLE orders (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_id bigint NOT NULL,
amount numeric(12,2) NOT NULL DEFAULT 0,
status smallint NOT NULL DEFAULT 0,
created_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX idx_orders_user ON orders (user_id, created_at);| MySQL | 显式 ENGINE=InnoDB 与 CHARSET=utf8mb4;主键与二级索引在表内声明 |
|---|---|
| PostgreSQL | IDENTITY 替代 serial;索引通常独立 CREATE INDEX |
| 通用 | 主键必建;金额用 DECIMAL/NUMERIC;时间列带默认值 |