Size: a a a

DBA - русскоговорящее сообщество

2021 March 28

Н

Николай Федотов... in DBA - русскоговорящее сообщество
Всем доброго времени суток! Помогите разобраться с запросами. Есть такая схема БД. Нужно написать запрос по которому будут выданы все строки с именем пользователя(Users.name), названием сообщества(Communities.name) и названием разрешения(Permissions.name), которое у него в этом сообществе.
источник

Н

Николай Федотов... in DBA - русскоговорящее сообщество
Сейчас вот такой запрос SELECT users.name as user_name, communities.name as community_name FROM community_members JOIN communities ON community_members.community_id = communities.id JOIN users ON community_members.user_id = users.id который выводит Имя юзера и название сообщества. А вот как прицепить сюда еще и Разрешение - задача, ставящая в тупик...
источник

LE

Lex E in DBA - русскоговорящее сообщество
Serega Carbon
общее правило: процедура - не возвращает ничего, функция всегда  должна что-то возвращать, всё., элементарно Ватсон
ну вот опять, бесполезные знания

вообще да, ты конечно прав

create proc what_db_is_that @ID int
as
selecet db_name(@ID) as thatDB;

и

create proc some_proc
as
begin
   return 1
end
go
declare @i int
exec @i = some_proc
источник

ВД

Владислав Денисович... in DBA - русскоговорящее сообщество
Скажите, пожалуйста, транзакции нужно писать внутри хранимых процедур?
источник

ФГ

Федор Гулин... in DBA - русскоговорящее сообщество
Как бы неплохо указывать в вопросе БД и цель.
Скажу так можно.
А нужно или нет от кейса зависит.
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Владислав Денисович
Скажите, пожалуйста, транзакции нужно писать внутри хранимых процедур?
что такое транзакция? Транзакция - это еденица выполнения операций, которая работает таким образом, что если одна операция из транзакции завершится неудачно, то вся транзакция завершится неудачно и изменение от всех остальных успешных операций не будет применено. То есть все операции должны завершится успехом. Следовательно, вопрос, есть ли у тебя такие операции, которые нужно выполнять посредством транзакций
источник

У

Уруруборос Иванович... in DBA - русскоговорящее сообщество
Добрый вечер.
Есть связка Кафка-Информатика-Терадата.
Есть ли способ проверить каким образом данные пишутся в терадату: батчами или по одной записи?
источник
2021 March 29

ВД

Владислав Денисович... in DBA - русскоговорящее сообщество
Serega Carbon
что такое транзакция? Транзакция - это еденица выполнения операций, которая работает таким образом, что если одна операция из транзакции завершится неудачно, то вся транзакция завершится неудачно и изменение от всех остальных успешных операций не будет применено. То есть все операции должны завершится успехом. Следовательно, вопрос, есть ли у тебя такие операции, которые нужно выполнять посредством транзакций
Например, если я хочу удалить данные из связных таблиц, стоит применять транзакцию?
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Владислав Денисович
Например, если я хочу удалить данные из связных таблиц, стоит применять транзакцию?
Если у тебя каскадная политика удаления, то не нужно, если у тебя no action  - то нужно, хотя там по ситуации
источник

ВД

Владислав Денисович... in DBA - русскоговорящее сообщество
Serega Carbon
Если у тебя каскадная политика удаления, то не нужно, если у тебя no action  - то нужно, хотя там по ситуации
А если у меня несколько запросов на обновление значений в связных таблицах
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Владислав Денисович
А если у меня несколько запросов на обновление значений в связных таблицах
как?
источник

ВД

Владислав Денисович... in DBA - русскоговорящее сообщество
Ну например, у меня есть таблица авторы книги(ID_Книги, ID_Автора), и таблица автор(ID_Автора, Имя автора). В таблицу авторы книги я вставляю нового автора, которого еще нет в таблице автор и мне придется его добавить туда. Это не обновление, я не смог ничего с обновлением придумать, но этот вопрос меня тоже интересует.
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Ну тогда транзакция, да
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Федор Гулин
Хм.
В скл сервере просто как грабли.
В SP  вызываешь
Select 1
Select 2
Select 3
и на клиента возвращается 3 рекордсета.
В Оракле надо через Pipe.
Сложней но можно.
Не скажу можно ли несколько рекордсетов но это легко загуглить.
Нет не надо. Refcursor возвращается из процедуры и всё
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serega Carbon
процедура - ничего не возвращает, а только выполняет, следовательно операции CUD, а функция возвращает - следовательно можно выбирать селектом
Процедуры во всех СУБД разные, у них разные возможности
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
процедуры ВСЕГДА ничего не возвращают
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Serega Carbon
ну серьезно, не знать чем процедура от функции отличается - это зашквар как по мне)
Это ты тоже неправ, в разных СУБД и языках все по разному, без этой привязки это только лишь пустые слова
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
а БД, у которой процедура что-то возвращает, это исключение из правил. Мы же не будем говорить, что в одних субд тип Инт - целое число, а в других - вообще текстовый формат
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Владислав Денисович
Скажите, пожалуйста, транзакции нужно писать внутри хранимых процедур?
Можно писать, можно не писать. Жестокого требования обычно нет. Хотя в разных СУБД тоже есть нюансы.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Владислав Денисович
Например, если я хочу удалить данные из связных таблиц, стоит применять транзакцию?
Зависит от твоих желаний, от постановки задачи
источник