- 浏览: 15960 次
最新评论
慎用create table as select,一定要注意默认值的问题
很多人会使用create table as select * from table where id=-1的方式来年建立一摸一样的表,或者使用create table a as select * from b可以创建一个与b表结构一样的表,但是在实际应用中最好不要这么创建表。原因是这样只创建表的结构,而不会将原表的默认值一起创建。
第一,新建一个表 -- Create table 第二,使用create table table02 as 第三、看看两个表的结构,会发现第二张表的defaule value没有了,如下2图,可以很明显看出来,表02的add_date的默认值得sysdate没有了 table01的表结构 table02的表结构 所以各位在做数据库迁移时候,使用create table as select时候,一定要注意默认值的问题
create table table01
(
id number(16),
add_date date default sysdate,
status number(1),
entp_code varchar2(200)
)
select * From table01 where id=-1
发表评论
-
qqqqqqqqqqqqqqqqqq
2014-05-23 22:51 0qqqqqqqqqqqqqqqqqqqqqqqqqqq ... -
在线重定义表 .
2014-01-22 15:48 9017*24的业务运营系统中, ... -
Oracle Auditing Policy
2013-12-24 10:13 572Auditing Policy Security a ... -
上课2
2013-09-08 18:33 0士大夫似的 -
上课1
2013-09-08 18:32 0是大方说对方答复 -
ziliao
2013-09-05 20:37 0sdfsdf -
oracle
2013-09-05 20:36 0fsdfsdfsdfs -
fsdfsdfsdf
2013-09-02 18:07 0sdfsdf -
oracle
2013-09-02 18:01 0sfdf sdfsd -
mylist
2013-08-15 20:20 0sdf -
mylist
2013-08-15 20:19 0sdf -
sublime
2013-08-11 23:34 0buhbhj -
dkf_changyong
2013-07-18 20:31 0sdfsd -
shangke22
2013-07-18 18:32 0shangke -
shangke
2013-07-16 13:24 0sd -
ocp
2013-07-06 23:44 0ocpcopcp -
ocp
2013-07-02 22:54 0sdfsdf -
oracle richeng
2013-06-29 22:55 0sdf s -
oracle dahui
2013-06-28 22:29 0sdfsdfsd -
my-file
2013-06-28 18:48 0fsdfsdfsdfsdfsf
相关推荐
没有条件是全部删除,慎用 3、改数据 update 表名 set 列1 =值1,列2 = 值2 where 条件; 不写条件就都修改了 4、查询数据: a:查询表中全部数据 select * from 表名; 四、查数据 1、基本语法 格式:select ...
慎用IN和NOT IN - **核心思想**:使用IN和NOT IN可能会导致全表扫描,尤其是当列表很长时。建议使用BETWEEN来替代。 - **示例**:查询年龄在1至3之间的员工信息。 ```sql -- 不推荐 SELECT * FROM employees ...
此外,in 和 not in 也要慎用,否则会导致全表扫描。可以使用 between instead of in。例如,select id from t where num between 1 and 3。 在 where 子句中使用参数也会导致全表扫描。可以使用强制查询使用索引的...
5. in和not in也要慎用,否则会导致全表扫描。对于连续的数值,能用between就不要用in了。 6. 下面的查询也将导致全表扫描:select id from t where name like '%abc%'。可以考虑使用全文检索来提高效率。 7. 如果...
- **慎用 IN 和 NOT IN**:这些操作符可能导致全表扫描,尤其是在处理大量数据时。例如: ```sql SELECT id FROM t WHERE num IN (1, 2, 3); ``` 对于连续数值范围,建议使用 `BETWEEN` 替代 `IN`: ```sql ...
4. **慎用`OR`连接条件** - `OR`操作符会使得MySQL无法使用索引来优化查询。可以采用多个`SELECT`语句联合查询的方式替代。 - 示例:将`SELECT id FROM t WHERE num = 10 OR num = 20;`改为`SELECT id FROM t ...
5. in 和 not in 也要慎用,否则会导致全表扫描。可以使用 between 操作符来代替 in 操作符,提高查询效率。 6. 对于 like 操作符,应该避免使用通配符 % 在前缀处,否则将导致全表扫描。可以使用全文检索来提高...
5. in 和 not in 也要慎用,否则会导致全表扫描。 知识点:in 和 not in 操作符可能会导致索引失效,可以使用 between 语句来替代。 6. 下面的查询也将导致全表扫描:select id from t where name like '%abc%'。 ...
6. **慎用`IN`和`NOT IN`**:当处理大量数据时,`IN`和`NOT IN`操作符也可能触发全表扫描。可以考虑使用`BETWEEN`代替连续数值的`IN`,或者使用子查询或临时表来优化处理大量数据的`IN`操作。 7. **避免使用参数化...
12. **避免无意义的查询**:创建空表结构时,直接使用CREATE TABLE语句,而非通过SELECT INTO从空结果集中创建。 13. **索引选择性**:索引的有效性取决于数据的分布,如果索引列的数据重复度高,可能对查询优化...
12. **避免无意义的查询**:创建空表结构时,直接使用`CREATE TABLE`语句,而不是通过`SELECT INTO`。 13. **使用EXISTS代替IN**:在某些情况下,`EXISTS`比`IN`更高效,特别是在子查询返回大量数据时。 14. **...