我有两个表Table1和Table2。
我在Table2上使用插入如下:
insert into table2
(colOne, colTwo, colThree) //and many more cols
values
(1, norman, US) //and many more values that come from a form and not table1
只有在Table1中存在值(1,norman,US)时,我才希望插入成功。价值观(1,诺曼,美国)来自一种形式。我怎么能这样做。
目前我使用了两个步骤来完成此操作。一个检查值是否存在,两个 - 插入
答案 0 :(得分:1)
您可以使用INSERT INTO... SELECT... WHERE
像这样的东西
insert into table2 (col1, col2, col3)
select (1, 'norman', 'US') from Table1 t1 -- where 1, 'norman', 'US' are your variables from a Form
where t1.id=1 and t1.name = 'norman' and t1.country = 'US' -- same
小SqlFiddle演示“选择我想要的任何东西”。
答案 1 :(得分:1)
您可以使用此方法:
INSERT INTO table2
(colOne, colTwo, colThree)
SELECT colOne, colTwo, colThree
FROM
(SELECT 1 AS colOne,'norman' AS colTwo,'US' AS colThree
UNION
SELECT 2,'sabt','US'
UNION
SELECT 3,'ebi','US'
)p
WHERE
EXISTS (
SELECT 1 FROM table1
WHERE table1.colOne = p.colOne AND
table1.colTwo =p.colTwo AND
table1.colThree =p.colThree
)
祝你好运。
答案 2 :(得分:0)
这样的事情通常是通过触发来完成的。为table1注册一个插入后触发器,并为table2执行插入。