再做一些数据迁移时候,很多人会使用create table as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来,可以看下面的例子:
第一,新建一个表
-- Create table
create table table01
(
id number(16),
add_date date default sysdate,
status number(1),
entp_code varchar2(200)
)
第二,使用create table table02 as
select * From table01 where id=-1
第三、看看两个表的结构,会发现第二张表的defaule value没有了,如下2图,可以很明显看出来,表02的add_date的默认值得sysdate没有了
table01的表结构
table02的表结构
所以各位在做数据库迁移时候,使用create table as select时候,一定要注意默认值的问题
上周,因为此问题,导致生产环境下产生了大量的问题,头大了一天,特此奉献出来。
- 大小: 4.1 KB
- 大小: 4 KB
分享到:
相关推荐
没有条件是全部删除,慎用 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. **...