powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / SQL [закрыт для гостей] / Задача для срача
25 сообщений из 38, страница 1 из 2
Задача для срача
    #158964
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Задачка в аттаче. На мой взгляд весьма неоднозначная.
тестовое задание (1).sql
...
Рейтинг: 0 / 0
Задача для срача
    #158965
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Сириус палюбому должен знать как решать. он же у нас фуллстек.
...
Рейтинг: 0 / 0
Задача для срача
    #158973
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В аттаче вирус!
...
Рейтинг: 1 / 0
Нравится: Green
Задача для срача
    #158977
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Просто Трёп  22.09.2022, 08:08
[игнорируется]
В аттаче вирус!
он заразил блокнот буквами!
...
Рейтинг: 0 / 0
Задача для срача
    #158983
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Doublekey  22.09.2022, 07:39
[игнорируется]
Задачка в аттаче. На мой взгляд весьма неоднозначная.
тестовое задание (1).sql
я бы добавил 3й вопрос на совсем засыпку: нахуя в задании первая таблица?
...
Рейтинг: 0 / 0
Задача для срача
    #158984
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  22.09.2022, 07:39
[игнорируется]
На мой взгляд весьма неоднозначная.
Что в ней неоднозначного?
...
Рейтинг: 0 / 0
Задача для срача
    #158988
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy  22.09.2022, 08:14
[игнорируется]
я бы добавил 3й вопрос на совсем засыпку: нахуя в задании первая таблица?
Для примера она, типа она для логирования.
Но вопрос конечно интересный, ибо эту таблицу логируем, а триггер на абстрактной таблице висит.
...
Рейтинг: 0 / 0
Задача для срача
    #158989
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Script Date: 31.08.2021 10:46:02

потребуй посвежее!
...
Рейтинг: 0 / 0
Задача для срача
    #158991
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  22.09.2022, 08:17
[игнорируется]
Antonariy  22.09.2022, 08:14
[игнорируется]
я бы добавил 3й вопрос на совсем засыпку: нахуя в задании первая таблица?
Для примера она, типа она для логирования.
Но вопрос конечно интересный, ибо эту таблицу логируем, а триггер на абстрактной таблице висит.
а может это ответ на второй вопрос? в триггере нужно поменять SomeAbstractTable на TablesForLogging!
...
Рейтинг: 0 / 0
Задача для срача
    #158992
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy  22.09.2022, 08:21
[игнорируется]
а может это ответ на второй вопрос? в триггере нужно поменять SomeAbstractTable на TablesForLogging!
Возможно.
Помимо вопроса к 1 таблице у меня ещё вопрос, действительно ли данные в логируемую таблицу только вставляются и удаляются, или нас просто не интересует апдейт.
...
Рейтинг: 0 / 0
Задача для срача
    #158994
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  22.09.2022, 08:22
[игнорируется]
Antonariy  22.09.2022, 08:21
[игнорируется]
а может это ответ на второй вопрос? в триггере нужно поменять SomeAbstractTable на TablesForLogging!
Возможно.
Помимо вопроса к 1 таблице у меня ещё вопрос, действительно ли данные в логируемую таблицу только вставляются и удаляются, или нас просто не интересует апдейт.
или нужно добавить в триггер проверку, что SomeAbstractTable есть в конфигах. может триггер узнать имя таблицы, на которой висит?
...
Рейтинг: 0 / 0
Задача для срача
    #158998
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  22.09.2022, 08:22
[игнорируется]
действительно ли данные в логируемую таблицу только вставляются и удаляются, или нас просто не интересует апдейт.
чего это не интересует? AFTER DELETE,UPDATE,INSERT

а inserted называется одинаково и для обновления и для вставки.

этот нюанс нужно учесть в процедуре восстановления - проверить, что в целевой таблице есть запись с id и если есть, обновить данными из лога, или вставить.
...
Рейтинг: 0 / 0
Задача для срача
    #159000
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy  22.09.2022, 08:28
[игнорируется]
inserted называется одинаково и для обновления и для вставки.

этот нюанс нужно учесть в процедуре восстановления - проверить, что в целевой таблице есть запись с id и если есть, обновить данными из лога, или вставить.
Откат инсёрта - это удаление.
И если у тебя запись есть, то её надо удалить.
...
Рейтинг: 0 / 0
Задача для срача
    #159002
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  22.09.2022, 08:32
[игнорируется]
Antonariy  22.09.2022, 08:28
[игнорируется]
inserted называется одинаково и для обновления и для вставки.

этот нюанс нужно учесть в процедуре восстановления - проверить, что в целевой таблице есть запись с id и если есть, обновить данными из лога, или вставить.
Откат инсёрта - это удаление.
И если у тебя запись есть, то её надо удалить.
Тогда получается, что надо искать более раннюю запись среди инсёртов, если она есть, то это изменение и данные восстанавливать из более ранней записи.
...
Рейтинг: 0 / 0
Задача для срача
    #159007
Фотография Green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  22.09.2022, 08:08
[игнорируется]
В аттаче вирус!
Не хочу открывать.
...
Рейтинг: 0 / 0
Задача для срача
    #159014
Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
Горбатый ёж  22.09.2022, 08:34
[игнорируется]
Горбатый ёж  22.09.2022, 08:32
[игнорируется]
Antonariy  22.09.2022, 08:28
[игнорируется]
inserted называется одинаково и для обновления и для вставки.

этот нюанс нужно учесть в процедуре восстановления - проверить, что в целевой таблице есть запись с id и если есть, обновить данными из лога, или вставить.
Откат инсёрта - это удаление.
И если у тебя запись есть, то её надо удалить.
Тогда получается, что надо искать более раннюю запись среди инсёртов, если она есть, то это изменение и данные восстанавливать из более ранней записи.
Логично
...
Рейтинг: 0 / 0
Задача для срача
    #159016
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Есть такое хранилище логов
USE [LogDB]
GO

/****** Object: Table [dbo].[tablesForLogging] Script Date: 31.08.2021 10:45:47 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- конфиг таблицы, что логируем
CREATE TABLE [dbo].[tablesForLogging](
[BaseName] [nvarchar](50) NULL,
[tableName] [nvarchar](50) NULL,
[Field_Key] [nvarchar](100) NULL,
[is_active] [bit] NULL,
[Storage] [int] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[tablesForLogging] ADD CONSTRAINT [DF_TablesForLogging_is_active] DEFAULT ((1)) FOR [is_active]
GO

USE [LogDB]
GO

/****** Object: Table [dbo].[tableLoggingData] Script Date: 31.08.2021 10:46:02 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- сами залогированные данные
CREATE TABLE [dbo].[tableLoggingData](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[Base_ID] [bigint] NOT NULL,
[table_ID] [bigint] NOT NULL,
[DateAdd] [datetime] NOT NULL,
[is_type] [bit] NOT NULL,
[HostName] [varchar](100) NULL,
[ProgramName] [varchar](100) NULL,
[Proc_ID] [bigint] NULL,
[SystemUser] [varchar](50) NULL,
[Str_json] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

GO

Use [SomeAbstractDB]
go
на какой-то абстрактной таблице есть триггер
CREATE TRIGGER [dbo].[LogAction_tt_online_services] ON [dbo].[SomeAbstractTable] AFTER DELETE,UPDATE,INSERT
AS
BEGIN
IF EXISTS (SELECT * FROM deleted)
BEGIN
INSERT INTO LogDB.dbo.TableLoggingData
(Base_ID, Table_ID, [DateAdd], is_type, HostName, ProgramName, Proc_ID, SystemUser, Str_json)
SELECT 23, 485330533, GETDATE(), 1, HOST_NAME(), PROGRAM_NAME(),
@@PROCID, SYSTEM_USER, (SELECT D.* FOR JSON PATH)
FROM deleted D
END
IF EXISTS (SELECT * FROM inserted) AND NOT EXISTS(SELECT * FROM deleted)
BEGIN
INSERT INTO LogDB.dbo.TableLoggingData
(Base_ID, Table_ID, [DateAdd], is_type, HostName, ProgramName, Proc_ID, SystemUser, Str_json)
SELECT 23, 485330533, GETDATE(), 0, HOST_NAME(), PROGRAM_NAME(),
@@PROCID, SYSTEM_USER, (SELECT I.* FOR JSON PATH)
FROM inserted I
END
END

Задача:
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
2) Может что-то можно\нужно изменить в триггере ?
...
Рейтинг: 0 / 0
Задача для срача
    #159017
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green  22.09.2022, 08:51
[игнорируется]
Просто Трёп  22.09.2022, 08:08
[игнорируется]
В аттаче вирус!
Не хочу открывать.
Ты побежден!
...
Рейтинг: 0 / 0
Задача для срача
    #159138
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  22.09.2022, 09:12
[игнорируется]
Задача:
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
хуйня вопрос

за деньги

зы: не забудь перед восстановлением отключить нахуй триггер
...
Рейтинг: 0 / 0
Задача для срача
    #159148
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  22.09.2022, 09:12
[игнорируется]
2) Может что-то можно\нужно изменить в триггере ?
да, нужно

логи они как бы не для восстановления, а для анализа.
для восстановления гораздо удобнее использовать другие механизмы. например бэкапы.
Doublekey  22.09.2022, 09:12
[игнорируется]
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
а ДАТУ ВРЕМЯ с которой восстанавливать - передать не хочешь?
...
Рейтинг: 0 / 0
Задача для срача
    #159151
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
в общем без озвучивания количества тысяч рублей задача ниххуя неинтересная
...
Рейтинг: 0 / 0
Задача для срача
    #159203
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
eNose  22.09.2022, 10:41
[игнорируется]
Doublekey  22.09.2022, 09:12
[игнорируется]
Задача:
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
хуйня вопрос

за деньги

зы: не забудь перед восстановлением отключить нахуй триггер
это тестовое задание гы
...
Рейтинг: 0 / 0
Задача для срача
    #159205
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
eNose  22.09.2022, 10:46
[игнорируется]
Doublekey  22.09.2022, 09:12
[игнорируется]
2) Может что-то можно\нужно изменить в триггере ?
да, нужно

логи они как бы не для восстановления, а для анализа.
для восстановления гораздо удобнее использовать другие механизмы. например бэкапы.
Doublekey  22.09.2022, 09:12
[игнорируется]
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
а ДАТУ ВРЕМЯ с которой восстанавливать - передать не хочешь?
ну это не мое задание там есть много тонких непонятных моментов а восстановление у них ОДНОЙ записи по ID зачем там дата?
...
Рейтинг: 0 / 0
Задача для срача
    #159212
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  22.09.2022, 11:04
[игнорируется]
eNose  22.09.2022, 10:46
[игнорируется]
Doublekey  22.09.2022, 09:12
[игнорируется]
2) Может что-то можно\нужно изменить в триггере ?
да, нужно

логи они как бы не для восстановления, а для анализа.
для восстановления гораздо удобнее использовать другие механизмы. например бэкапы.
Doublekey  22.09.2022, 09:12
[игнорируется]
1) Сделать процедуру восстановления данных, которая на вход принимает айдишник из таблицы TableLoggingData и в целевой таблице восстанавливает запись
а ДАТУ ВРЕМЯ с которой восстанавливать - передать не хочешь?
ну это не мое задание там есть много тонких непонятных моментов а восстановление у них ОДНОЙ записи по ID зачем там дата?
с одной неинтересно
...
Рейтинг: 0 / 0
Задача для срача
    #159228
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  22.09.2022, 11:04
[игнорируется]
там есть много тонких непонятных моментов
как по таблице tablesForLogging создать скрипт для восстановления и заполнить его данными из tableLoggingData?

это тебе непонятно или что-то еще?
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / SQL [закрыт для гостей] / Задача для срача
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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