CA 40 – 修改表

发布: (2026年3月29日 GMT+8 21:37)
2 分钟阅读
原文: Dev.to

Source: Dev.to

customers 表中将 email 设置为 NOT NULL

ALTER TABLE customers
ALTER COLUMN email SET NOT NULL;

确保以后插入的行必须有 email 值。

users 表中使 username 唯一

ALTER TABLE users
ADD CONSTRAINT unique_username UNIQUE (username);

防止用户名重复。

products 表中添加检查约束 price > 0

ALTER TABLE products
ADD CONSTRAINT price_check CHECK (price > 0);

现在 price 不能为零或负数。

orders 表中将默认 status 设置为 'pending'

ALTER TABLE orders
ALTER COLUMN status SET DEFAULT 'pending';

如果未提供 status,它将自动设置为 'pending'

employees 表中添加 salary 列并附加条件

ALTER TABLE employees
ADD COLUMN salary INT NOT NULL;

ALTER TABLE employees
ADD CONSTRAINT salary_check CHECK (salary > 10000);

salary 不能为空,且必须大于 10,000。

修改外键,使删除部门时同时删除其员工

ALTER TABLE employees
DROP CONSTRAINT employees_department_id_fkey;

ALTER TABLE employees
ADD CONSTRAINT employees_department_id_fkey
FOREIGN KEY (department_id)
REFERENCES departments(id)
ON DELETE CASCADE;

现在删除部门会自动删除其关联的员工。

accounts 表中移除检查约束 balance >= 0

ALTER TABLE accounts
DROP CONSTRAINT accounts_balance_check;

移除 balance 列上的检查约束。

payments 表中使 user_idtransaction_id 的组合唯一

ALTER TABLE payments
ADD CONSTRAINT unique_payment UNIQUE (user_id, transaction_id);

防止同一用户的交易重复。

通过本练习,我了解到 ALTER TABLE 用于在不删除表的情况下修改表结构,这在数据库已经有数据时非常有用。

0 浏览
Back to Blog

相关文章

阅读更多 »

修改表

1. 将 customers 表的 email 列设为 NOT NULL:ALTER TABLE customers ALTER COLUMN email SET NOT NULL; 2. 确保 users 表的 username 唯一:ALTER TABLE …

使用 ALTER 修改 SQL 表

将列设为 NOT NULL:sql ALTER TABLE customers ALTER COLUMN email SET NOT NULL; 添加唯一约束:sql ALTER TABLE users ADD CONSTRAINT unique_user...

ALTER 查询

在本次作业中,我使用 ALTER TABLE 对现有表进行修改。这帮助我了解了如何在不重新创建表的情况下更新约束。任务……