Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / задание AUTO_INCREMENT из переменной. / 10 сообщений из 10, страница 1 из 1
10.02.2015, 23:31:55
    #38876432
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
Пишу код :

Код: sql
1.
2.
3.
4.
5.
6.
7.
SET @startrec=10;
CREATE TEMPORARY TABLE 
TMPID 
( 
ID INT(4) PRIMARY KEY AUTO_INCREMENT
) 
AUTO_INCREMENT = @startrec;



Ругается:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@startrec' at line 6

Вроде в документации не сказано, что не могу пользоваться переменными при создании таблицы. Как можно обойти ?
...
Рейтинг: 0 / 0
11.02.2015, 00:29:55
    #38876450
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
Разобрался, так работает :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SET @new_ai = 1;
SELECT @new_ai := MAX(ID)  FROM SUPERTAB ;
SET @save_ai = 1;
SELECT @save_ai := @@auto_increment_increment; 
SET SESSION auto_increment_increment=@new_ai;

CREATE TEMPORARY TABLE 
TMPID 
( 
ID INT(4) PRIMARY KEY AUTO_INCREMENT
);
INSERT INTO  TMPID  VALUE (0), (0);
DELETE FROM TMPID WHERE ID=1;
SELECT * FROM  TMPID;

SET SESSION auto_increment_increment=@save_ai;


Хотя первую запись все равно начинает с 1. Приходится убивать.
...
Рейтинг: 0 / 0
11.02.2015, 00:46:53
    #38876456
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
StandUpВроде в документации не сказано, что не могу пользоваться переменными при создании таблицы.Вообще-то сказано. http://dev.mysql.com/doc/refman/5.5/en/create-table.html
Код: plaintext
AUTO_INCREMENT [=]  value 

StandUpКак можно обойти ?Смотря куда вы пытаетесь придти. Задача какая?
...
Рейтинг: 0 / 0
11.02.2015, 00:58:49
    #38876463
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
AUTO_INCREMENT [=] value

то, что value не может быть переменной, не сказано.
Т.е. не работает АUTO_INCREMENT = @my_var;

Задача - связать существующую таблицу, с таблицой, в которой точно нет совпадающих ID по другому полю.
...
Рейтинг: 0 / 0
11.02.2015, 01:14:26
    #38876471
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
StandUpто, что value не может быть переменной, не сказано.value - это именно явно указанное значение.
Там, где допустимы выражения (в том числе, состоящие из одной переменной) пишут expr.

StandUpЗадача - связать существующую таблицу, с таблицой, в которой точно нет совпадающих ID по другому полю.Все равно не понял.
Случаем, не это нужно:
http://dev.mysql.com/doc/refman/5.5/en/update.html UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;?
...
Рейтинг: 0 / 0
11.02.2015, 01:28:00
    #38876475
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
Нужно вставить в таблицу tt записи одним запросом. Дизайн tt не предусматривает AUTO_INCREMENT на поле ID PRIMARY KEY.
...
Рейтинг: 0 / 0
11.02.2015, 01:36:06
    #38876479
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
Варианты
1. ALTER TABLE - страшно. Это рабочая учетная система. Куча народу работает. Добавление должно быть на фоне. Кроме того классы на php написаны, изменение дизайна таблиц может привести к последствиям.
2. max(id) в insert ? Не понимаю, как лочить в это время на запись для остальных. Это данные с интернет магазина хочу залить. 5 сек жужжит.
3. ночь уже, наверно зациклился.....
...
Рейтинг: 0 / 0
11.02.2015, 01:39:57
    #38876482
StandUp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
Да, на php написать могу. Просто интересно на Т-SQL.
...
Рейтинг: 0 / 0
11.02.2015, 02:19:16
    #38876489
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
StandUp1. ALTER TABLE - страшно. Это рабочая учетная система. Куча народу работает. Добавление должно быть на фоне. Кроме того классы на php написаны, изменение дизайна таблиц может привести к последствиям.Если речь про ALTER TABLE с целью включения автоинкремента на поле - попробуйте в сторонке. Или на тестовой базе, или, в крайнем случае, на боевой на отдельной тестовой табличке с сотней записей. Если все пройдет успешно - постепенно увеличивайте количество записей, например, в 2 раза за шаг.
...
Рейтинг: 0 / 0
11.02.2015, 02:22:04
    #38876490
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
задание AUTO_INCREMENT из переменной.
StandUp,

Еще можно попытаться изобразить счетчик на переменных. См. тут .

И так и не понял, как изначальные эксперименты с AUTO_INCREMENT-ом связаны с таблицей в которой нет AUTO_INCREMENT-ного поля.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / задание AUTO_INCREMENT из переменной. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]