powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT в цикле
14 сообщений из 14, страница 1 из 1
INSERT в цикле
    #38702136
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток уважаемые.
БД Mysql
Такая задача есть таблица ofuser

usernamenameemail...

и есть таблица ofroster

rosterID username jid sub ask recv nick

Нужно бы как нибудь сделать инсерт вида в цикле

INSERT INTO
ofroster (rosterid, username, jid, sub , ask, recv, nick )
VALUES
((select max(rosterid))+1, 'USERNAME', 'admin@admin.ru', '3', '-1', '-1','admin' )


Чтоб запрос прошелся по всем USERNAME из первой таблицы и понадобавлял строки во второй таблице наращивая сам rosterid

остальные поля фиксированные...

Я так понимаю нужно это все сделать в цикле только не соображу как
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702157
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИльгизонЯ так понимаю нужно это все сделать в цикленеправильно понимаете
читайте про auto_increment и про insert ... select
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702318
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таааак, rosterid auto increment я выставил

потом хотел провести:

INSERT INTO ofroster (username) SELECT ofuser.username
FROM ofuser

а он мне: MySQL Database Error: Field 'jid' doesn't have a default value


мол полю 'jid' тоже че то нужно присваивать... не подскажете как дописать код чтоб присваивать полю 'jid' всегда одинаковое значение типа 'admin@admin.ru'
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702330
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСё догнал как сделать, всем спасибо:))

INSERT INTO ofroster (username, jid, sub , ask, recv, nick) SELECT ofuser.username, 'admin@admin.ru', '3', '-1', '-1','admin'
FROM ofuser
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702505
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь нужно 74 раза прогнать инсерт: INSERT INTO ofrostergroups (rank, groupName) Values ('0', 'ПУНКТЫ');
тут то всё такие цикл нужен ???
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702560
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ильгизон,

такое можно и циклом
а можно
Код: sql
1.
2.
3.
INSERT INTO ofrostergroups (rank, groupName) select ('0', 'ПУНКТЫ')
from <любая таблица с не менее чем 74 записями>
limit 74 -- order by можно не писать, т.к. неважно, какие данные оттуда будут читаться;
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702613
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо tanglir :))

уже успел было сделать так

DELIMITER //
CREATE PROCEDURE groupss () begin
DECLARE i INT DEFAULT 1;
WHILE i<74 DO
INSERT INTO ofrostergroups (rank, groupName) Values ('0', 'ПУНКТЫ');
SET i=i+1;
END WHILE;
end //

CALL groupss();


но твой метод был бы проще :))
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702721
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirИльгизон,

такое можно и циклом
а можно
Код: sql
1.
2.
3.
INSERT INTO ofrostergroups (rank, groupName) select ('0', 'ПУНКТЫ')
from <любая таблица с не менее чем 74 записями>
limit 74 -- order by можно не писать, т.к. неважно, какие данные оттуда будут читаться;

например, на пустой базе:
Код: sql
1.
2.
3.
4.
5.
6.
INSERT INTO ofrostergroups (rank, groupName) select ('0', 'ПУНКТЫ')
from -- 3*5*5=75
  (select 1 a union all select 2 union all select 3)a
 ,(select 1 b union all select 2 union all select 3 union all select 4 union all select 5)b
 ,(select 1 c union all select 2 union all select 3 union all select 4 union all select 5)c
limit 74
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702730
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ильгизонспасибо tanglir :))

уже успел было сделать так

DELIMITER //
CREATE PROCEDURE groupss () begin
DECLARE i INT DEFAULT 1;
WHILE i<74 DO
INSERT INTO ofrostergroups (rank, groupName) Values ('0', 'ПУНКТЫ');
SET i=i+1;
END WHILE;
end //

CALL groupss();


но твой метод был бы проще :))

ещо его метод правильный... в твоём будет вставка 73!!! записей (i=1,2,3,...,73) - всего 73
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702760
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007
Код: sql
1.
-- 3*5*5=75

я в таких случаях не заморачиваюсь, делаю 10 в степени N и ставлю лимит :)
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702763
Ильгизон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да да, это я уже исправил

alex564657498765453Ильгизонспасибо tanglir :))

уже успел было сделать так

DELIMITER //
CREATE PROCEDURE groupss () begin
DECLARE i INT DEFAULT 1;
WHILE i<74 DO
INSERT INTO ofrostergroups (rank, groupName) Values ('0', 'ПУНКТЫ');
SET i=i+1;
END WHILE;
end //

CALL groupss();


но твой метод был бы проще :))

ещо его метод правильный... в твоём будет вставка 73!!! записей (i=1,2,3,...,73) - всего 73
...
Рейтинг: 0 / 0
INSERT в цикле
    #38702887
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirCygapb-007
Код: sql
1.
-- 3*5*5=75

я в таких случаях не заморачиваюсь, делаю 10 в степени N и ставлю лимит :)да так короче по тексту получается:) чем 2 раза по 10 набирать
ну, и для примера неофиту, так сказать...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
INSERT в цикле
    #39024159
Zvitman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirCygapb-007
Код: sql
1.
-- 3*5*5=75

я в таких случаях не заморачиваюсь, делаю 10 в степени N и ставлю лимит :)

дайте пример плз.
...
Рейтинг: 0 / 0
INSERT в цикле
    #39024306
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zvitmanдайте пример плз.
Код: sql
1.
2.
3.
4.
5.
6.
7.
INSERT INTO ofrostergroups (rank, groupName) select ('0', 'ПУНКТЫ')
from 
  (select 1 a union all select 2 union ... select 10) a1,
  (select 1 a union all select 2 union ... select 10) a2,
...
  (select 1 a union all select 2 union ... select 10) aN
limit сколько_надо
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT в цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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