是否可以设置列,使其只能有2个不同的值中的1个。例如,现在类型是varchar(8),但我希望它只有接受的有效值是“比特币”或“贝宝”。我知道我可以用PHP做到这一点,但是有可能用MySQL吗?
答案 0 :(得分:3)
在MySQL中,您有三个或四个选择。
在其他数据库中,您还可以选择使用检查约束。 MySQL实际上并没有实现这些。
答案 1 :(得分:1)
请替换您的表名和您的cloumn名称
ALTER TABLE <table name>
CHANGE COLUMN <column name> ENUM('Bitcoin','Paypal') NOT NULL;
答案 2 :(得分:1)
如果你想采用完全规范化的方法,我会做这样的事情:
Customer
id auto_increment pk
name VARCHAR(255)
payment_type_id INT(10)
然后有一个单独的表:
PaymentTypes
id auto_increment pk
name VARCHAR(255)
如果您使用的是InnoDB,则需要在support_type列上添加一个外键。
要查询付款类型,只需加入表格:
SELECT c.Name, pt.Name as 'Payment Type'
FROM Customer c
LEFT JOIN PaymentTypes pt ON pt.id = c.payment_type_id
这是更好的选择之一,因为它允许稍后添加付款类型。