powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / auto_increment = @id => ошибка синтаксиса
11 сообщений из 11, страница 1 из 1
auto_increment = @id => ошибка синтаксиса
    #38719273
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Подскажите, в чём я туплю...
Надо в общем для одной таблицы выставить auto_increment как у другой. Для этого запускаю:
Код: plsql
1.
2.
SET @id = (SELECT auto_increment FROM information_schema.tables WHERE table_name='tempPrice');
ALTER TABLE `tires` AUTO_INCREMENT = @id;



На выходе:
Syntax error or access violation: 1064 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 '@id' at line 1. The SQL statement executed was: ALTER TABLE `tires` AUTO_INCREMENT = @id

Может просто я делаю это как-то через не то место?! :)

Прошу помощи.
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719284
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, там нельзя подставлять переменную, а можно только числовой литерал.
Попробуйте через prepared statements.
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719338
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрМожет просто я делаю это как-то через не то место?! :)Да :)
Во-первых, не указываете schema_name
Во-вторых, похоже, нельзя в альтер переменные пихать. Собирайте строку запроса и используйте prepared statements.

Хотя сам факт, что вам потребовалось подобное (если вы хотите это сделать скриптом, значит, это не разовое решение), говорит о том, что у вас что-то не в порядке с базой.
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719341
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот это я заслоупочил :)
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719342
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftВидимо, там нельзя подставлять переменную, а можно только числовой литерал.
Попробуйте через prepared statements.

Syntax error or access violation: 1064 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 '?' at line 1. The SQL statement executed was: PREPARE stmt FROM 'ALTER TABLE `tires` AUTO_INCREMENT = ?'

Я криворукий, или его что-то не устраивает? :(

mysql5.0 движок innoDB ...
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719352
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

вы опять пихаете туда переменную :)
соберите весь текст запроса concat-ом, в том числе и значение переменной приконкатенируйте, не ставьте её параметром
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719372
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirПрограмёр,

вы опять пихаете туда переменную :)
соберите весь текст запроса concat-ом, в том числе и значение переменной приконкатенируйте, не ставьте её параметром

Понял... но из-за срочности уже решил на стороне php сделать... всё как надо получилось :)

В плане, что что-то не так с базой - возможно... просто сейчас нету времени что бы глобально менять. :) хотя есть идея сделать некоторые поправки.
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719386
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо, кстати :)
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719556
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумал, а вдруг кто подскажет по структуре умные мысли... опишу тут свою структуру (прошу отнестись полоялнее ), если у кого мысли возникнут и предложения, с радостью их выслушаю.

Есть основная таблица с товарами магазина и есть 3 таблицы на 3 вида нестандартных товаров, для их особых полей.
Из-за чего мне нужен был такой трюк с синхронизацией автоинкрементов - из-за того, что в разных поставках может быть один и тот же товар с разными ценами, а значит на сайте может появиться 2 товара с одинаковым артиклем. Значит связывать основную таблицу с дополнительными надо по другому полю - по некому генерируемому id (который автоинкрементится). Прайсов много, товаров тоже много... заказчику приходят не изменённые позиции, а полный прайс, который система должна обработать. Потому вопрос в быстродействии при обновлении прайса... для этого было решено использовать "LOAD DATA INFILE ...", но учитывая что поля прайса делятся на 2 таблицы, то загрузка требует выполнения 2 запросов, а значит нужна синхронизация ключей таблиц.

Вот :)
То есть если артикулы бы не повторялись, то ситуация бы не возникла (когда продумывалась структура системы заказчик умолчал о данном факте и заговорил лишь тогда, когда основа была написана).

Так что если у кого-то есть предложения по реорганизации процесса загрузки или самой базы - поделитесь опытом, пожалуйста :)
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719794
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть вам нужен один общий автоинк.ид на все таблицы?
...
Рейтинг: 0 / 0
auto_increment = @id => ошибка синтаксиса
    #38719920
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirТо есть вам нужен один общий автоинк.ид на все таблицы?
оснрвная задача - это загрузка данных в 2 таблицы с помощью load data infile, но со связыванием таблиц по полю с автоинкремент.
общий автоинкремент на 2 таблицы не поможет, потому как после загрузки данных в первую, но до загрузки во вторую автоинкремент второй таблицы будет на n больше чем мне нужно. Идеальный вариант - загрузка данных одной командой в 2 таблицы, но данная команда так не умеет, насколько я знаю.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / auto_increment = @id => ошибка синтаксиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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