2016-08-04 36 views
1

我在这里有一个小问题。我如何创建一个“双胞胎”的行和更新只是一个值

我需要创建10个或更多的行是相同的,然后只更新一列。

我会为我的解释尝试一个模式。

我有这样的:

IDARRET  LBL    MODELE 
1    Car    Ford 
2    TRUCK   Ford 
3    Boat    Ford 

,我想是这样的:

IDARRET  LBL    MODELE 
1    Car    Ford 
2    TRUCK   Ford 
3    Boat    Ford 
4    Car    Ferrari 
5    Truck   Ferrari 
6    Boat    Ferrari 

我希望它动态的,因为我有超过3行。

对不起,我的英语不是我的母语,如果你不明白我在说什么,请告诉我,我需要提高我的英语技能!

编辑:Axel的问题之后:是的idarret是一个序列,我需要创建一个双胞胎的所有行,我选择我的请求中最后一列的最后一个值。

+2

是'idarret'被自动设置,通过触发器和序列?你如何决定要复制哪些行,以及为该列使用什么新值? –

+0

欲了解更多详情:是的,idarret是一个序列。 我需要复制表中的所有行。 最后一列中的新值由用户选择。 – Falundrim

回答

3

看来你只需要诺坎普插入选:

SQL> select * from test_twin; 

    IDARRET LBL  MODELE 
---------- ---------- ---------- 
     1 Car  Ford 
     2 TRUCK  Ford 
     3 Boat  Ford 

SQL> insert into test_twin 
    2 select yourSequence.nextVal, LBL, 'Ferrari' 
    3 from test_twin; 

3 rows created. 

SQL> select * from test_twin; 

    IDARRET LBL  MODELE 
---------- ---------- ---------- 
     4 Car  Ferrari 
     5 TRUCK  Ferrari 
     6 Boat  Ferrari 
     1 Car  Ford 
     2 TRUCK  Ford 
     3 Boat  Ford 

6 rows selected. 
+0

或更确切地说,':user_input'而不是''Ferrari''来允许用户输入。无论如何,非常干净。凉! – mathguy

+0

哦thx它看起来比我想象的更容易。 我想创建一个PL/SQL与此循环^^ 我stil有一个错误:重复的主键。 – Falundrim

+0

你的PK包含哪些领域?如果只有ID,则应检查序列 – Aleksej