测试发现 sqlite3 并不支持直接添加带有 unique 约束的列:
sqlite> alter table company add department text unique; Error: Cannot add a UNIQUE column
可以先直接添加一列数据,然后再添加 unique 索引。其实在建表的时候如果列有 unique 约束,通过查询系统表 SQLITE_MASTER 可以看到,会自动创建相应的索引。
SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 是 sqlite 的系统表,SQLITE_TEMP_MASTER 表存储临时表有关的所有内容。
上面没有关于 for each row 和 when 的实例,这里补充一下。
for each row 是操作语句每影响到一行的时候就触发一次,也就是删了 10 行就触发 10 次,而 for each state 一条操作语句就触发一次,有时没有被影响的行也执行。sqlite 只实现了 for each row 的触发。when 和 for each row 用法是这样的:
CREATE TRIGGER trigger_name AFTER UPDATE OF id ON table_1 FOR EACH ROW WHEN new.id>30 BEGIN UPDATE table_2 SET id=new.id WHERE table_2.id=old.id; END;
上面的触发器在 table_1 改 id 的时候如果新的 id>30 就把 表table_2 中和表table_1 id 相等的行一起改为新的 id
和其他数据库类似,别名的关键字 as 可以被省略
SELECT id AS identification, name AS nickname FROM company; SELECT id identification, name AS nickname FROM company;
结果是完全一样的。
current_timestamp 得到的时间,时区不对,要想得到本地时间,试试下面这个:
sqlite> select datetime('now','localtime'); datetime('now','localtime') = 2018-09-13 16:38:32
INSERT INTO `content_picture_data` VALUES ('2556', '2559', '世人都说路不齐,别人骑马我骑驴', null, null, '1');
INSERT INTO `content_picture_data` VALUES ('2557', '2569', '回头看看推车汉,比上不足比下有余', null, null, '1');
使用 NotePad++ 正则表达式替换 把'2556', '2559'替换成'2559', '2559'即第二个字符串复制到第一个
查找目标输入 '(\d{4})', '(\d{4})'
替换为输入 '(\2', '(\2)'
查找模式选 正则表达式
点全部替换即可
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
1215SQLite Alter 命令
测试发现 sqlite3 并不支持直接添加带有 unique 约束的列:
可以先直接添加一列数据,然后再添加 unique 索引。其实在建表的时候如果列有 unique 约束,通过查询系统表 SQLITE_MASTER 可以看到,会自动创建相应的索引。
SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 是 sqlite 的系统表,SQLITE_TEMP_MASTER 表存储临时表有关的所有内容。
1214SQLite 触发器
上面没有关于 for each row 和 when 的实例,这里补充一下。
for each row 是操作语句每影响到一行的时候就触发一次,也就是删了 10 行就触发 10 次,而 for each state 一条操作语句就触发一次,有时没有被影响的行也执行。sqlite 只实现了 for each row 的触发。when 和 for each row 用法是这样的:
上面的触发器在 table_1 改 id 的时候如果新的 id>30 就把 表table_2 中和表table_1 id 相等的行一起改为新的 id
1213SQLite 别名
和其他数据库类似,别名的关键字 as 可以被省略
结果是完全一样的。
1212SQLite 表达式
current_timestamp 得到的时间,时区不对,要想得到本地时间,试试下面这个:
630NotePad++ 正则表达式替换
INSERT INTO `content_picture_data` VALUES ('2556', '2559', '世人都说路不齐,别人骑马我骑驴', null, null, '1');
INSERT INTO `content_picture_data` VALUES ('2557', '2569', '回头看看推车汉,比上不足比下有余', null, null, '1');
使用 NotePad++ 正则表达式替换 把'2556', '2559'替换成'2559', '2559'即第二个字符串复制到第一个
查找目标输入 '(\d{4})', '(\d{4})'
替换为输入 '(\2', '(\2)'
查找模式选 正则表达式
点全部替换即可