如果没有返回行,我想为应该使用的列使用默认值。这在 PostgreSQL 中可能吗?我该怎么做?或者我还有其他方法可以解决这个问题吗?
例如这样的事情:
SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3
Run Code Online (Sandbox Code Playgroud)
如果org_id = 3
表中没有行,我想返回0
。
我无法设置Current_timestamp
为默认值。我的Mysql
版本是5.5.47
.
查询是
ALTER TABLE `downloads` ADD `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ;
Run Code Online (Sandbox Code Playgroud)
虽然它在我的本地数据库上使用mysql V5.6.56
.
我通常按照以下规则设计我的数据库:
CREATE TRIGGER <TriggerName>
ON <MyTable>
[BEFORE | AFTER] INSERT
AS
IF EXISTS (SELECT 1
FROM inserted
WHERE Field1 <> <some_initial_value>
OR Field2 <> <other_initial_value>)
BEGIN
UPDATE MyTable
SET Field1 = <some_initial_value>,
Field2 = <other_initial_value>
...
END
Run Code Online (Sandbox Code Playgroud)
sp_MyTable_Insert(@Field1, @Field2, @Field3, ...);
sp_MyTable_Delete(@Key1, @Key2, ...);
sp_MyTable_Update(@Key1, @Key2, @Field3, ...);
Run Code Online (Sandbox Code Playgroud)
您认为,在这种情况下,使用 DEFAULT CONSTRAINT 是否值得,或者我正在向数据库服务器添加额外且不必要的工作?
更新
我知道通过使用 DEFAULT 约束,我向必须管理数据库的其他人提供了更多信息。但我最感兴趣的是性能。
我假设数据库总是检查默认值,即使我提供了正确的值,因此我做了两次相同的工作。
例如,有没有办法在触发器执行中避免 DEFAULT 约束?
performance database-design sql-server t-sql default-value query-performance
我正在尝试在 Management Studio 中创建一个表,在阅读了新的(从 SQL 2005 开始)NEWSEQUENTIALID()
函数后,我想试一试。
这就是我正在做的:
但它不让我。我得到的错误信息是:
'FormTemplate (Forms)' table - Error validating the default for column 'FormTemplateId'.
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一个技巧吗?我肯定在运行 SQL Server 2008 R2。
我可以通过RBAR方式将多行插入到一个表中,所有列的默认值:
create table course(course_id serial primary key);
do $$
begin
for i in 1..100000 loop
insert into course default values;
end loop;
end;$$;
Run Code Online (Sandbox Code Playgroud)
有没有办法用单个 SQL 语句做同样的事情?
在 Microsoft SQL 服务器中,如何使用 T-SQL 添加/更改现有表列的默认值?
我可以在 DB 表 (PostgreSQL) 中创建具有默认值随机字符串的列,以及如何创建?
如果不可能,请告诉我。
我想创建一个ALTER TABLE
添加新列并设置默认值的表达式,并另外定义该列的允许值。这是一个文本列,允许的应该只有“value1”、“value2”和“value3”。默认应为“value1”
根据以下语法图:
我快到了
ALTER TABLE exampleTable ADD COLUMN new_column VarChar(20) DEFAULT 'value1'
Run Code Online (Sandbox Code Playgroud)
但我绝对不确定如何设置允许的值。
是否有可能制作类似的东西
约束检查 new_column IN ('value1', 'value2', 'value3)
? 我必须承认这张search condition
图让我很困惑。
在表中插入值后实时检索最新的guid值
不知道怎么做
CREATE TABLE [AddressBook]
(
[testID] [uniqueidentifier] NOT NULL default newid(),
[address] [nvarchar](50) NULL,
[zipcode] [nvarchar](50) NULL
)
Run Code Online (Sandbox Code Playgroud) default-value ×10
postgresql ×4
sql-server ×3
t-sql ×2
aggregate ×1
alter-table ×1
constraint ×1
date ×1
ddl ×1
mysql-5.5 ×1
oracle ×1
performance ×1
random ×1
select ×1
ssms ×1
timestamp ×1
uuid ×1