kiran0624 Ответов: 3

Как вставить несколько значений в несколько таблиц


Iam может вставлять несколько значений (столбцов) в несколько историй в нескольких запросах. и на это нужно время. вставлять



например
таблица 1
unique_no имя возраст адрес
127890 Рахул 27 Нью-Йорк......

таблица 2
s_no unique_no phone_no car_details зарплата
45 127890 1234567890 BMW 64 000$

я вставил обе таблицы в один запрос.

Что я уже пробовал:

я уже пробовал

вставьте в таблице table_1(unique_no, имя ,отчество, возраст, адрес) значением('127890','Рахул','27', 'Нью-Йорк......');

вставить в table_2(s_no,unique_no,phone_no,car_details,зарплата) значение('45','127890', '1234567890','БМВ','64,000$');

это займет время, если у меня есть 100 таблиц для вставки столбцов...
я хочу написать один запрос.. возможно ли это.

3 Ответов

Рейтинг:
2

kiran0624

я очень четко объясню свой вопрос!!!

публичный список getECreasdetails(){


SQL-запрос reasonDetails = нуль;
1)строка sndreasonDetailsQuery = "вставить в reason_save_tbl_1(main_no, res_save, r_status) "
+ "значения('"+main_no+"','"+reasonList.get(i)+"',' " +change_int_status+"')";

2)SQLQuery reasonDetails2 = null;
Строка sndreasonDetailsQuery2 = "вставить в reason_save_tbl_2(main_no, res_save, r_status) "
+ "значения('"+main_no+"','"+reasonList.get(i)+"',' " +change_int_status+"')";

3)........
4).......
---
---
---
100)SQLQuery reasonDetails100 = null;
Строка sndreasonDetailsQuery100 = "вставить в reason_save_tbl_100(main_no, res_save, r_status) "
+ "значения('"+main_no+"','"+reasonList.get(i)+"',' " +change_int_status+"')";

возвращение успеха;
}

если вставить каждую таблицу по таблице
один запрос займет 0,05 секунды
100 запрос займет 0,05 сек*100 это больше, чем 5 минут
если бы я мог запустить один запрос вставки для 100 таблиц, это было бы 0,04 секунды.
можно выполнить один запрос, например, как мы используем псевдоним в select query.


Graeme_Grant

Начните, зафиксируйте и откатите назад ... все ключевые слова транзакций, которые вам нужно выучить... Как только вы это сделаете, вы увидите свет!

Richard Deeming

Если вы хотите обновить свой вопрос, нажмите на зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос. НЕ опубликуйте свое обновление как "решение".

Рейтинг:
1

Graeme_Grant

Для массовых обновлений/вставок/удалений вы должны использовать транзакции.


kiran0624

пожалуйста, приведите мне пример, который мог бы мне помочь!!!

Рейтинг:
0

OriginalGriff

Предположительно, вы делаете это с помощью языка презентации какой-то формы, мы понятия не имеем, что и как! Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. И есть сотни различных способов, которыми вы могли бы это сделать.

Поэтому начните с того, как вы это делаете в данный момент: предполагая, что это язык .NET, используйте Класс секундомера[^] к тому времени, что у вас есть в настоящее время:

Stopwatch sw = new Stopwatch();
sw.Start();
... code to do the timed operation ..
sw.Stop();
Console.WriteLIne(sw.Ticks);
Это дает вам базовый уровень для работы, и несколько секундомеров могут быть использованы, чтобы узнать, где ваш код медленный - так что вы можете сосредоточить свои усилия на ускорении этого процесса.
Обратите внимание, что вы можете выполнить эти операции несколько раз (несколько тысяч), чтобы получить значимые числа, если только ваш код не настолько медленный, чтобы солнечные часы могли его засечь!

Пока у вас нет значимой статистики о том, насколько он медленный и где он медленный, бессмысленно пытаться что-то ускорить!


kiran0624

я работаю весной и впадаю в спячку. там нет никаких проблем в моем java-коде так же быстро, как быстрый результат.
проблема в SQL-запросе.
мы используем sql select alias для быстрого доступа к тысячам таблиц, получающих необходимые столбцы в одном запросе.
Как же мы можем вставить или обновить столбцы в 100 таблиц в одном запросе.