Questions tagged «ctas»

2
CREATE TABLE AS与SELECT INTO
PostgreSQL支持CREATE TABLE AS,SELECT INTO何时同时使用两者? CREATE TABLE AS -根据查询结果定义新表 CREATE TABLE AS创建一个表,并用SELECT命令计算的数据填充该表。表列具有与的输出列关联的名称和数据类型SELECT(除非您可以通过提供新列名称的显式列表来覆盖列名称)。 CREATE TABLE AS与创建视图有些相似,但实际上是完全不同的:它创建一个新表并仅对查询进行一次评估以最初填充新表。新表将不会跟踪对查询源表的后续更改。相反,SELECT无论何时查询,视图都会重新评估其定义语句。 接着。 SELECT INTO -根据查询结果定义新表 SELECT INTO创建一个新表并将其填充查询所计算的数据。数据不会像常规一样返回给客户端SELECT。新表的列具有与的输出列关联的名称和数据类型SELECT。
16 postgresql  ctas 

1
在CREATE TABLE…AS SELECT中自动递增主键
我通过使用复杂的选择查询创建了表格CREATE TABLE ... AS SELECT...。如何在此查询中添加自动增量主键? 例如: create table `user_mv` select `user`.`firstname` as `firstname`, `user`.`lastname` as `lastname`, `user`.`lang` as `lang`, `user`.`name` as `user_name`, `group`.`name` as `group_name` from `user` inner join `user_groups` on (`user`.`user_id`=`user_groups`.`user_id`) left join `group` on (`group`.`group_id`=`user_groups`.`group_id`) where `user`.`lang`=`group`.`lang` 此查询创建一个包含表firstname,lastname,lang,username,group_name列。我希望它也具有id作为自动增量主键的列。 有什么办法可以通过更改此查询来做到这一点?我知道我可以通过在执行此查询后更改表来做到这一点,但是如果有任何直接在create table语句中执行此操作的方法,我想知道如何执行此操作。

2
MySQL在创建表为SELECT时锁定
我正在运行以下(虚拟)查询 CREATE TABLE large_temp_table AS SELECT a.*, b.*, c.* FROM a LEFT JOIN b ON a.foo = b.foo LEFT JOIN c ON a.bar = c.bar 假设查询需要10分钟才能运行。在表a,b或c运行时尝试更新它的值将等待上面的查询首先完成。我想避免这种锁定(数据一致性不重要)。我该如何实现? 使用:MySQL 5.1.41和InnoDB表 ps SET事务隔离级别读取未提交;行为无变化 更新 在执行查询时,SHOW ENGINE INNODB STATUS的输出如下(我在这里故意进行了非常慢的查询) ===================================== 120323 15:26:29 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 8 …
10 mysql  locking  ctas 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.