|
|
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Есть табличка, в ней описано уникальное поле как autoincrement key. При добавлении получаем уникальный ключ. Вопрос как его достать? select max? - вряд ли это правильно, а вдруг уже кто то запись добавил. Может кто нибудь сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 09:56 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
help читать иногда полезно :) Examples SELECT @@IDENTITY Returns NULL if no records have been inserted in the current connection, otherwise returns the IDENTITY column value of the most recently inserted row. SELECT * FROM t1 WHERE @@IDENTITY = 12 Returns the most recently inserted row if it has an IDENTITY column value of 12. Otherwise, returns no rows. INSERT INTO t1(c2) VALUES (@@IDENTITY) Inserts the IDENTITY value of the last row inserted into column C2 of the new row. UPDATE t1 SET t1.c1 = (SELECT @@IDENTITY) WHERE t1.c1 = @@IDENTITY + 10 Updates column C1 with the IDENTITY value of the last row inserted, if the value of C1 is 10 greater than the IDENTITY column value of the last row inserted. UPDATE t1 SET t1.c1 = (SELECT NULL FROM t2 WHERE t2.c1 = @@IDENTITY) Updates column C1 with the value NULL if the value of C1 equals the IDENTITY column value of the last row inserted. The example below creates a stored procedure and calls it. The procedure sets variable V1 equal to the sum of the input value and the IDENTITY column value of the last row updated. The procedure then deletes rows from the table anywhere column C1 equals V1. The procedure then prints a message stating how many rows were deleted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 10:16 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Да, я только что нашел этот блок, только что то не разберусь. создаю таблицу CREATE TABLE T1 (C1 INTEGER, C2 INTEGER) Дважды делаю INSERT INTO T1(C2) VALUES (@@IDENTITY) Просматриваю select * from t1 Вижу две пустые записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 10:57 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Еще раз ЧИТАТЬ help, твой пример не верен (что заказал то и получил - автоинкмента в принципе нет). 1 Создали таблицу с автоинкрементом (поле Num) и индексом по нему create table T_OST PAGESIZE=16384 ( Num IDENTITY not null, NumberSeek utinyint not null, primary key (Num) ); 2. добавляем запись INSERT INTO T_OST(NumberSeek) VALUES (4) поле Num заполняется а автомате 3. считываем значение автоинкремента, т.е. значение поля Num SELECT @@IDENTITY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 13:42 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Теперь понял. Т.е. в identitty это не специальный признак а тип поля в базе. Жаль, это не так интересно. А если база уже существует и нет возможности ее пересоздать, может есть какой то вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 15:06 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Чего надо, не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 08:57 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
БПАЧего надо, не понял? Скажи - чего я не допонял? И если ты так хорошо разбираешься, простой ответ, есть ли возможность прикрутить этот признак к существующему autoincrement полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 11:21 |
|
||
|
Pervasive SQL v 8.6 - как получить autoincrement key
|
|||
|---|---|---|---|
|
#18+
Вопроса не понял. Какой признак и к чему его прикрутить ? Если есть автоинкрементное поле (о его наличии можно узнать утилитой maintenance -> stat report), то оно при добавлении записи заполняется автоматически и его значение можно узнать запросом SELECT @@IDENTITY. Новые поля и индексы можно всегда добавить в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 10:41 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=34166243&tid=2016275]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 323ms |

| 0 / 0 |
