我想在oracle中创建序列号

时间:2017-08-02 05:03:04

标签: sql oracle database-sequence

我想在Oracle中创建一个序列号。 我试过这个查询

$user = $_POST['user'];
$pass = $_POST['pass'];  

$db = file("database.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$valid = false;
foreach ($db as $person) {
  $details = explode('|', $person);
  if (trim($details[0]) == $user && trim($details[1]) == $pass) {
      $valid = true;
      break;
  }
}

我有,

alter table tablename add(ID NUMBER);

CREATE SEQUENCE SEQ_ID START WITH 1 INCREMENT BY 1 MAXVALUE 31611805 MINVALUE 1 NOCYCLE;

UPDATE tablename SET ID= SEQ_ID.NEXTVAL 

我希望:

NID
----- 
ABD90
BGJ89
HSA76

以上代码无效。我是oracle的新手。请帮助产生上述结果。

1 个答案:

答案 0 :(得分:1)

如果您想为每个NID添加唯一ID,您可以这样做 -

  UPDATE tablename t
       SET t.ID =
              (SELECT SEQ_ID.NEXTVAL
                 FROM tablename sub_t
                WHERE t.NID = sub_t.NID);