我有两个插入语句,如下面的A和B.我需要将这两个insert语句合并为一个,如语句C.我不喜欢重复的代码,例如语句A和B中的select部分.语句的正确格式是什么C?请忽略动态查询语句,因为真正的语句选择部分非常复杂.
声明A:
insert into a
(firstname, lastname)
select t2.firstname, t3.lastname
from t1, t2, t3
where t1.t1_id = t2.t1_id
and t2.t2_id = t3.t2_id;
Run Code Online (Sandbox Code Playgroud)
声明B:
insert into b
(personid)
select t1.personid
from t1, t2, t3
where t1.t1_id = t2.t1_id
and t2.t2_id = t3.t2_id;
Run Code Online (Sandbox Code Playgroud)
陈述C:
insert into a
(firstname, lastname)
insert into b
(personid)
select t2.firstname, t3.lastname, t1.personid
from t1, t2, t3
where t1.t1_id = t2.t1_id
and t2.t2_id = t3.t2_id;
Run Code Online (Sandbox Code Playgroud)
现实世界的原始陈述如下:
procedure allo_recipient(p_all_id number,
p_allo_type varchar2,
p_step_no number,
p_region varchar2,
p_don_reg_code varchar2,
p_med_urgent …Run Code Online (Sandbox Code Playgroud) 我想这是一个简单的问题,我根本找不到在哪里或为什么.(希望这不是重复的)..
我的目的是从输入和textarea中获取信息,并将其插入到我的数据库中,进入已经存在"journals"的正确表中.然而,在点击提交并且没有收到任何错误之后,没有任何内容添加到数据库...想法?
这是我的"观点"(post.php):
<fieldset>
<form method="post" action="push.php">
<input type="text" name="datetitle" /><br />
<textarea name="journalcontent"></textarea><br />
<input type="submit" />
</form>
<?php echo $datetitle ?>
<p><?php $output ?></p>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
这是我的"索引"(push.php),省略了明显的部分:
<?php
$dsn = '*';
$username = '*';
$password = '*';
include "model.php";
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $exc) {
echo 'connection failed';
exit;
}
echo 'goodzo';
$datetitle = $_POST['datetitle'];
$journalcontent = $_POST['journalcontent'];
if (!empty($datetitle)) {
$output = add_entry($datetitle, $journalcontent);
} else {
$output = "empty";
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 MySQL 中的数据库读取并将我的数据插入到 MySQL 中的另一个数据库中。
我的第一张桌子是这样的
CREATE TABLE IF NOT EXISTS `link` (
`_id` bigint(20) NOT NULL AUTO_INCREMENT,
`country` varchar(30) COLLATE utf8 DEFAULT NULL,
`time` varchar(20) COLLATE utf8 DEFAULT NULL,
`link` varchar(100) COLLATE utf8 DEFAULT NULL,
PRIMARY KEY (`_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6149 ;
Run Code Online (Sandbox Code Playgroud)
第二张表是
CREATE TABLE IF NOT EXISTS `country` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(15) CHARACTER SET utf8 NOT NULL,
`Logo` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `Name_3` (`Name`),
UNIQUE …Run Code Online (Sandbox Code Playgroud) 我试图执行这个声明
INSERT INTO myTable
(Field1, Field2, Field3)
VALUES (2, 1, 10), (2, 2, 4), (2, 12, 0)
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
在sql语句结束时缺少分号(;)
我的SQL语句出了什么问题?
我正在使用Oracle SQL.为什么这个insert语句抛出一个表达式错误?
INSERT INTO T_DATA(id, object_type, object_id,
measurement_id, derived_ind, no_hist_ind,
display_order, stored_precision, display_precision,
required_ind, mod_user, mod_dtime)
VALUES(SELECT MAX(id) + 1 FROM t_data_point, 'Object', 'ObjectName',
'ID', 3, 0, 1, 2, 2, 0, 'TEST', SYSDATE);
Run Code Online (Sandbox Code Playgroud) 我有两个这样的插入查询:
INSERT INTO mytable VALUES('NULL',name1)('NULL',name2)
Run Code Online (Sandbox Code Playgroud)
INSERT上面的那两个查询,添加两个分开的行mytable.我可以通过单一查询来做到这一点吗?
有人可以礼貌地解释这种疯狂吗?
INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "UserProfileId" INTO _UserProfileId;
Run Code Online (Sandbox Code Playgroud)
抛出一个模棱两可的引用错误,但是这可以正确执行:
INSERT INTO "dbo"."UserProfile" ("FirstName")
VALUES('John')
RETURNING "dbo"."UserProfile"."UserProfileId" INTO _UserProfileId;
Run Code Online (Sandbox Code Playgroud)
_UserProfileId是一个声明的整数变量。我在手册中找不到任何对这种语法的引用,或者为什么这在任何方面都是模棱两可的。
我有一个SQL查询
with subtable as (
................
)
select *
from subtable
Run Code Online (Sandbox Code Playgroud)
我想将select语句中的记录插入表中.寻找像这样的东西:
with subtable as (......)
insert into newtable
select *
from subtable
Run Code Online (Sandbox Code Playgroud)
但是,在Vertica中,INSERT不能与WITH(CTE)语句一起使用.
这有什么工作吗?
谢谢您的帮助
如您所见,表使用相同的主键相互引用.这就是问题 - 我知道用两次INSERT调用放置数据会给我一个错误,说我违反了PK约束.有没有办法在代码中执行此操作?我想创建一个存储过程,用于添加"主要产品"(SUROWCE)并对应于它记录在"stock"(STAN)中.
我的代码尝试:
INSERT INTO STAN VALUES(25, 5, 1000);
INSERT INTO SUROWCE VALUES(25, 'wood');
Msg 547, Level 16, State 0, Line 4
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_STAN_SUROWCE". The conflict occurred in database "TestBazyDanych", table "dbo.SUROWCE", column 'ID_SUROWCA'.
我正在尝试使用如下查询将数百行插入表中:
Insert INTO tableX (column1, colum2)
VALUES
((SELECT sysID FROM tableY where ID = var1), 1)
((SELECT sysID FROM tableY where ID = var2), 1)
et cetera
Run Code Online (Sandbox Code Playgroud)
现在让我们说var88不存在,它将返回NULL作为sysID,但是我不能在column1中插入NULL,所以我得到一个错误,整个插入查询将被终止.有没有办法取消整个终止,只是跳过sysID = NULL的行?我确信我可以通过首先进行正确的选择,过滤掉NULL行然后插入,然后我想知道是否还有其他方法来做到这一点.
sql-insert ×10
sql ×7
mysql ×3
oracle ×2
php ×2
sql-server ×2
bulkinsert ×1
database ×1
insert ×1
oracle10g ×1
oracle11g ×1
plpgsql ×1
postgresql ×1
t-sql ×1
vertica ×1