1

我有两个表 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,Norman,US) 来自一种形式。我怎么能做这样的事情。

目前我使用了 2 个步骤来做到这一点。一是检查值是否存在,二是插入

4

3 回答 3

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演示。

于 2013-08-29T17:46:17.953 回答
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
            )

祝你好运。

于 2013-08-29T19:46:10.773 回答
0

像这样的事情通常是用触发器来完成的。为 table1 注册一个插入后触发器并为 table2 执行插入操作。

http://technet.microsoft.com/de-de/library/ms189799.aspx

于 2013-08-29T17:46:36.597 回答