Tob*_*ias 12 sql postgresql constraints
TEXT在使用PostgreSQL(或其他一些支持它的数据库)时似乎最好使用数据类型,而不是character varying(NN)因为没有性能损失,并且可以通过删除和重新应用约束而不影响任何约束来调整最大可能长度使用该领域的观点等.
但是,这个约束是如何应用的(SQL代码)?
gma*_*iar 21
创建表时,您可以执行此类操作,
CREATE TABLE names (
name text CHECK namechk (char_length(name) <= 255)
)
Run Code Online (Sandbox Code Playgroud)
(namechk只是约束的名称)
ALTER TABLE例如,同样如下:
ALTER TABLE names
ADD CONSTRAINT namechk CHECK (char_length(name) <= 255);
Run Code Online (Sandbox Code Playgroud)
这里真的有三件事:
text+ 检查约束更好,还是使用varchar(N)?答案:
varchar(N)在检查模式时,A会更明显,以及来自其他数据库的开发人员希望看到的内容。然而,正如你所说,以后更难改变。请记住,应用新的/修改的检查约束不是免费的 - 必须根据约束检查所有现有行,因此在大表上,需要大量读取。CONSTRAINT name CHECK (condition)(或者只是CHECK (condition)并且 Postgres 本身会提供一个名称)在CREATE TABLE语句中,并且ALTER TABLE table_name ADD CONSTRAINT name CHECK (condition);. condition将是使用适当字符串函数的表达式,例如char_length(foo) <= 255.ALTER TABLE foo DROP CONSTRAINT ck_bar_length; ALTER TABLE foo ADD CONSTRAINT ck_bar_length CHECK ( char_length(bar) <= 100 );我实际上无法想到命名约束的缺点。| 归档时间: |
|
| 查看次数: |
14433 次 |
| 最近记录: |