标签: create-table

SQLITE查询结果到临时表

我之前没有使用SQLite过,也无法弄清楚语法,SQL Server如果它有帮助,我有这个工作.

我需要将结果放入临时表中,以便重用它们.

// SQL Server

WITH FT_CTE AS
(
SELECT pID, cID FROM brFTNode_Children 
WHERE pID = 1
UNION ALL
    SELECT e.pID, e.cID FROM brFTNode_Children e
    INNER JOIN FT_CTE ftCTE on (ftCTE.cID = e.pID)
)
SELECT * INTO #ParentChild FROM FT_CTE;
Run Code Online (Sandbox Code Playgroud)

// SQLite试试

WITH FT_CTE AS
(
SELECT pID, cID FROM brFTNode_Children 
WHERE pID = 1
UNION ALL
    SELECT e.pID, e.cID FROM brFTNode_Children e
    INNER JOIN FT_CTE ftCTE on (ftCTE.cID = e.pID)
)
CREATE TEMPORARY …
Run Code Online (Sandbox Code Playgroud)

sqlite create-table common-table-expression

6
推荐指数
1
解决办法
2万
查看次数

如何从另一个表中设置AUTO_INCREMENT

如何设置AUTO_INCREMENTon CREATE TABLEALTER TABLEfrom另一个表?

我发现了这个问题,但没有解决我的问题: 如何使用另一个表中的MAX值重置MySQL AutoIncrement?

我也试过这个:

CREATE TABLE IF NOT EXISTS `table_name` (
  `id` mediumint(6) unsigned NOT NULL AUTO_INCREMENT,
  `columnOne` tinyint(1) NOT NULL,
  `columnTwo` int(12) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=(SELECT `AUTO_INCREMENT` FROM  `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = 'database_name' AND `TABLE_NAME` = 'another_table_name');
Run Code Online (Sandbox Code Playgroud)

这个:

ALTER TABLE `table_name` AUTO_INCREMENT=(SELECT `AUTO_INCREMENT` FROM  `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = 'database_name' AND `TABLE_NAME` = 'another_table_name');
Run Code Online (Sandbox Code Playgroud)

这个:

CREATE TABLE IF NOT EXISTS `table_name` (
  `id` mediumint(6) unsigned …
Run Code Online (Sandbox Code Playgroud)

mysql alter-table create-table auto-increment

6
推荐指数
1
解决办法
1233
查看次数

销毁并重新创建jQuery数据表

我有两个带服务器端处理的jQuery数据表.我有一个复选框,我隐藏并显示两个表.我想销毁无显示的并创建另一个表.我该怎么做?

这是我尝试但ajax.reload不解雇的.

if ($('#mode').is(':checked')) {
    Table2.ajax.reload();
    Table1.clear();
    Table1.destroy();
} else {
    Table1.ajax.reload();
    Table2.clear();
    Table2.destroy()
}

var Table1 = $('#timesheet-table').DataTable({})
var Table2 = $('#timesheet-table-2').DataTable({})
Run Code Online (Sandbox Code Playgroud)

jquery datatables create-table destroy

6
推荐指数
2
解决办法
1万
查看次数

Postgresql 对 2 列的约束,因此“col_a”不能共享“col_b”的任何值

我正在构建一个包含系统条形码以及自定义条形码选项的数据库。我对custom_barcode和有一个独特的约束system_barcode

\n

我想做的是拥有它,因此如果custom_barcode值为 \xe2\x80\x9c123\xe2\x80\x9d,则其他行都不能具有值为 \xe2\x80\x9c123" 的custom_barcodeOR 。我没有尝试制作一个 2 列唯一约束,其中如果是“123”并且是“456”,则该组合不能再次存在。是否可以实现此目的?我想知道这是否需要通过触发器来实现。system_barcodecustom_barcodesystem_barcode

\n

sql arrays postgresql create-table unique-constraint

6
推荐指数
1
解决办法
763
查看次数

如何使用SQL来查看表是否存在?

可能的重复:
SQL Server:检查表是否存在
Oracle:如果表存在

我正在尝试创建一个表并插入一些值,但在此之前我必须确保该表尚不存在。你如何检查这一点?

sql oracle create-table

5
推荐指数
1
解决办法
2520
查看次数

具有 5 个表的复杂 SQL 联接

我正在开发一个相对庞大的应用程序,其中包含相当多的表。我必须编写一个 SQL 查询,它在简化后涉及 5 个表(有关连接,请参见 jpg)。

想法如下:人有地址,地址有类型(私人、专业等)和国家。人也可以有选择。这些选项(此处在带有 name_id 的选项表中说明)可以链接到地址类型。

这个想法是提取所有拥有一个或多个地址的人,这些地址由一个国家指定,并且他们也出现在 [option address] 表中。

例如,假设我们想要地址为 country_id=1 的人。结果集必须排除与其选项链接的地址类型不同的人员。

嗯...我不确定我是否了解自己 :)

但无论如何,这是创建所有内容的 SQL。

CREATE TABLE `address` (
  `person_id` int(11) NOT NULL,
  `type_id` int(11) NOT NULL,
  `country_id` int(11) NOT NULL,
  UNIQUE KEY `apt` (`person_id`,`type_id`),
  KEY `apid` (`person_id`),
  KEY `atid` (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `address` (`person_id`, `type_id`, `country_id`) VALUES
(1, 1, 1),
(2, 2, 1),
(3, 1, 1),
(3, 2, 2),
(5, 1, 2),
(6, 2, 1),
(7, 1, 1),
(7, 2, …
Run Code Online (Sandbox Code Playgroud)

sql join create-table

5
推荐指数
1
解决办法
3万
查看次数

“创建表为选择”不保留不为空

我正在尝试使用 Oracle 的“按选择创建表”功能进行快速更新。我看到的问题是“空”字段没有被保留。

我定义了下表:

create table mytable(
  accountname varchar2(40) not null,
  username varchar2(40)
 );
Run Code Online (Sandbox Code Playgroud)

当我执行原始 CTAS 时,帐户上的 NOT NULL 被保留:

 create table ctamytable as select * from mytable;

 describe ctamytable;

Name        Null     Type         
----------- -------- ------------ 
ACCOUNTNAME NOT NULL VARCHAR2(40)

USERNAME             VARCHAR2(40) 
Run Code Online (Sandbox Code Playgroud)

但是,当我对帐户名进行替换时,不会保留 NOT NULL。

 create table ctamytable as 
   select replace(accountname, 'foo', 'foo2') accountname, 
          username 
     from mytable;

 describe ctamytable;

Name        Null Type          
----------- ---- ------------- 
ACCOUNTNAME      VARCHAR2(160) 
USERNAME         VARCHAR2(40) 
Run Code Online (Sandbox Code Playgroud)

请注意,该accountname字段不再有空值,并且该varchar2字段从 40 个字符变为 160 个字符。有没有人见过这个?

oracle create-table

5
推荐指数
1
解决办法
8105
查看次数

如何从配置单元查询创建制表符分隔的文件?

我正在尝试从配置单元查询创建一个制表符分隔值。

根据 Apache Hive wiki,我将查询编写为:

INSERT OVERWRITE LOCAL DIRECTORY '/home/luca/query_results/'
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY  '\t' ESCAPED BY '"' LINES TERMINATED BY '\n' 
STORED AS TEXTFILE
SELECT * FROM mytable ;
Run Code Online (Sandbox Code Playgroud)

(请注意,真正的查询非常复杂,我知道我可以hive -e "Select * from mytable > output在这个简单的情况下使用)。

该查询似乎有效,但在 query_results 目录中我找到一个带有.snappy扩展名的文件,当我打开它时,它似乎是一个二进制文件,而不是文本文件。

我的查询有什么问题?如何在格式良好的文本文件中获取查询结果(我想编写一个返回多个此类文件的配置单元脚本。如果我什至可以从配置单元中指定文件的名称,那就太好了)。

csv hive insert save create-table

5
推荐指数
1
解决办法
3万
查看次数

如何在postgreSQL中创建包含长度和精度参数的regtype列

我想在 postgreSQL 数据库中存储一些元信息。这就需要存储列类型信息。我知道 regtype 类型,但它不存储有关长度或精度的信息。

我怎样才能做到这一点。我可以使用 TEXT 列,但随后我需要处理所有验证和引用完整性。有没有更方便的方法来实现这一目标?

下面我展示示例代码。

CREATE TABLE foo
(name TEXT,
sql_type regtype);

INSERT INTO foo
VALUES('my_field_1', 'character varying'::regtype);

INSERT INTO foo
VALUES('my_field_2', 'VARCHAR(50)'::regtype);

INSERT INTO foo
VALUES('my_field_3', 'NUMERIC(32,16)'::regtype);

SELECT * from foo;
Run Code Online (Sandbox Code Playgroud)

结果如下:

name             sql_type
text             regtype
-------------------------------------
my_field_1      character varying
my_field_2      character varying
my_field_3      numeric
Run Code Online (Sandbox Code Playgroud)

预期结果:

name             sql_type
text             regtype
-------------------------------------
my_field_1      character varying  <-- I won't need such cases
my_field_2      character varying(50)
my_field_3      numeric(32,16)
Run Code Online (Sandbox Code Playgroud)

我目前使用的是 PostgreSQL 9.6

postgresql types create-table

5
推荐指数
1
解决办法
1744
查看次数

是否不可能有一个检查约束引用一个也有外键的列?

我在 MySQL 8 上尝试添加检查约束:

ALTER TABLE `table` ADD CHECK (
    (`column_a` IS NULL AND `column_b` IS NOT NULL) OR
    (`column_a` IS NOT NULL AND `column_b` IS NULL)
);
Run Code Online (Sandbox Code Playgroud)

但我不断收到此错误

列“column_b”不能用于检查约束“table_chk_1”:需要在外键约束“table_ibfk_2”引用操作中使用。

我在互联网上的其他任何地方都找不到对此错误的任何参考,我不明白问题是什么。无论column_acolumn_b也的外键与其它表,他们都是空。我只想确保中的每一行table都有一个引用 viacolumn_a或 via column_b

这个错误的原因是什么?


我试过什么

我试图删除外键,添加检查约束并成功。然后,如果我将外键添加回,column_b我仍然会收到相同的错误。

mysql sql check-constraints create-table mysql-8.0

5
推荐指数
1
解决办法
463
查看次数