为什么x IS NOT NULL不等于NOT x IS NULL?
这段代码:
CREATE TABLE bug_test (
id int,
name text
);
INSERT INTO bug_test
VALUES (1, NULL);
DO $$
DECLARE
v_bug_test bug_test;
BEGIN
RAISE NOTICE '%: %', v_bug_test, (v_bug_test IS NULL);
RAISE NOTICE '%: %', v_bug_test, (v_bug_test IS NOT NULL);
RAISE NOTICE '%: %', v_bug_test, (NOT v_bug_test IS NULL);
SELECT *
INTO v_bug_test
FROM bug_test
WHERE id = 1;
RAISE NOTICE '%: %', v_bug_test, (v_bug_test IS NULL);
RAISE NOTICE '%: …Run Code Online (Sandbox Code Playgroud) 我正在创建我的 UDT:
CREATE TYPE [dbo].[Code]
FROM VARCHAR(20) NOT NULL
Run Code Online (Sandbox Code Playgroud)
由于 RULES 和 DEFAULTS 被视为已弃用,建议使用什么方法对我的类型设置约束以确保从此类型定义的列仅包含特定字符?