[SQL] 어떻게 작업의 상태를 확인할 수 있습니까?
SQL어떻게 작업의 상태를 확인할 수 있습니까?
나는 어떤 일정 작업을 저장 프로 시저가 있습니다. 이 작업은 많은 시간 (약 30 분 ~ 40) 완료 얻을합니다. 나는이 작업의 상태를 알 수 있어야합니다. 자세한 내용은 나에게 도움이 될 아래
1) 어떻게 미래의 시간 예정있어 모든 작업의 목록을 확인하고 시작하는 데 아직
그들이 실행하는 경우 2) 방법을에서 실행중인 작업의 목록과 시간 범위를 볼 수 있습니다
작업이 성공적으로 완료 또는 때문에 오류의 사이에 정지 한 경우 3) 방법을 참조하십시오.
해결법
-
==============================
1.당신은 시스템 저장 프로 시저의 sp_help_job를 사용하여 시도 할 수 있습니다. 이 작업 그 단계, 일정 및 서버에 대한 정보를 반환합니다. 예를 들면
당신은 시스템 저장 프로 시저의 sp_help_job를 사용하여 시도 할 수 있습니다. 이 작업 그 단계, 일정 및 서버에 대한 정보를 반환합니다. 예를 들면
EXEC msdb.dbo.sp_help_job @Job_name = 'Your Job Name'
SQL 온라인은 반환 레코드에 대한 정보를 많이 포함해야합니다.
여러 작업에 대한 정보를 반환를 들어, 작업에 대한 정보의 다양한 비트를 누른 다음 시스템 테이블을 쿼리 시도 할 수
그들의 이름은 매우 자명 (떨어져있는 보류 정보에 SysJobServers에서 때 작업 마지막 실행 및 결과)이다.
다시 말하지만, 필드에 대한 정보는 MSDN에서 찾을 수 있습니다. 예를 들어, SysJobs의 페이지를 체크 아웃
-
==============================
2.나는이 페이지의 T-SQL의 어느 것도 오탐 (false positive)을 포함 할 수있다, 따라서 그들 중 누구도 현재 세션에만 얻을 수있는 syssessions 테이블에 참여하지 않기 때문에 정확하게 작동하지 것이다 것을 지적하고 싶습니다.
나는이 페이지의 T-SQL의 어느 것도 오탐 (false positive)을 포함 할 수있다, 따라서 그들 중 누구도 현재 세션에만 얻을 수있는 syssessions 테이블에 참여하지 않기 때문에 정확하게 작동하지 것이다 것을 지적하고 싶습니다.
이 참조를 참조하십시오 : 그것은 무엇 널 중지 날짜에 작업을 의미 하는가?
또한 MSDB에 sp_help_jobactivity 절차를 분석하여 유효성을 검사 할 수 있습니다.
나는이 SO에 오래된 메시지임을 알지만 때문에 문제의이 메시지는 부분적으로 만 도움이되었다고합니다.
SELECT job.name, job.job_id, job.originating_server, activity.run_requested_date, DATEDIFF( SECOND, activity.run_requested_date, GETDATE() ) as Elapsed FROM msdb.dbo.sysjobs_view job JOIN msdb.dbo.sysjobactivity activity ON job.job_id = activity.job_id JOIN msdb.dbo.syssessions sess ON sess.session_id = activity.session_id JOIN ( SELECT MAX( agent_start_date ) AS max_agent_start_date FROM msdb.dbo.syssessions ) sess_max ON sess.agent_start_date = sess_max.max_agent_start_date WHERE run_requested_date IS NOT NULL AND stop_execution_date IS NULL
-
==============================
3.이것은 내가 (나는 아마 걸어 한 사람을 죽일 수 있도록 주로) 실행중인 작업을 얻기 위해 사용하고 무엇을 :
이것은 내가 (나는 아마 걸어 한 사람을 죽일 수 있도록 주로) 실행중인 작업을 얻기 위해 사용하고 무엇을 :
SELECT job.Name, job.job_ID ,job.Originating_Server ,activity.run_requested_Date ,datediff(minute, activity.run_requested_Date, getdate()) AS Elapsed FROM msdb.dbo.sysjobs_view job INNER JOIN msdb.dbo.sysjobactivity activity ON (job.job_id = activity.job_id) WHERE run_Requested_date is not null AND stop_execution_date is null AND job.name like 'Your Job Prefix%'
팀 말한 것처럼, MSDN / BOL 문서는 sysjobsX 테이블의 내용에 합리적으로 좋다. 단지 그들이 MSDB의 테이블을 기억.
-
==============================
4.
-- Microsoft SQL Server 2008 Standard Edition: IF EXISTS(SELECT 1 FROM msdb.dbo.sysjobs J JOIN msdb.dbo.sysjobactivity A ON A.job_id=J.job_id WHERE J.name=N'Your Job Name' AND A.run_requested_date IS NOT NULL AND A.stop_execution_date IS NULL ) PRINT 'The job is running!' ELSE PRINT 'The job is not running.'
-
==============================
5.우리는 세부 사항을 얻을 수있는 여러 가지 방법으로 MSDB를 조회 할 수 있습니다.
우리는 세부 사항을 얻을 수있는 여러 가지 방법으로 MSDB를 조회 할 수 있습니다.
몇 가지
select job.Name, job.job_ID, job.Originating_Server,activity.run_requested_Date, datediff(minute, activity.run_requested_Date, getdate()) as Elapsed from msdb.dbo.sysjobs_view job inner join msdb.dbo.sysjobactivity activity on (job.job_id = activity.job_id) where run_Requested_date is not null and stop_execution_date is null and job.name like 'Your Job Prefix%'
-
==============================
6.당신은 당신이 세부 사항을보고 싶습니다 방법을 지정하지 않았습니다.
당신은 당신이 세부 사항을보고 싶습니다 방법을 지정하지 않았습니다.
첫눈 위해 나는 Server Management Studio를 확인하는 것이 좋습니다 것입니다.
당신은 채용에 따라, SQL Server 에이전트 일부 작업 및 현재 상태를 볼 수 있습니다. 당신이 직업을 선택하는 경우, 속성 페이지 쇼 당신은 시작 시간과 종료 시간을 볼 수있는 작업 기록에 대한 링크, 만약 거기에 이렇게 오류를 발생하고, 단계 오류.
당신은 알림 및 통지는 당신이나 작업이 성공적으로 완료 또는 실패 페이지를에 이메일을 지정할 수 있습니다.
거기에 작업 활동 모니터는, 실제로 나는 그것을 사용하지 않았다. 당신은 시도 할 수 있습니다.
당신이 T-SQL을 통해 그것을 확인하고 싶은 경우에, 나는 당신이 그렇게 할 수있는 방법을 모르겠어요.
-
==============================
7.이것은 오래된 질문이지만, 난 그냥 SQL 서버 작업의 상태를 확인하기 위해 필요한 비슷한 상황이 있었다. 많은 사람들은 sysjobactivity 테이블을 언급하고 대단한 MSDN 설명서 지적했다. 그러나, 나는 또한 당신의 서버에 정의 된 모든 작업의 상태를 제공하는 작업 활동 모니터를 강조하고 싶습니다.
이것은 오래된 질문이지만, 난 그냥 SQL 서버 작업의 상태를 확인하기 위해 필요한 비슷한 상황이 있었다. 많은 사람들은 sysjobactivity 테이블을 언급하고 대단한 MSDN 설명서 지적했다. 그러나, 나는 또한 당신의 서버에 정의 된 모든 작업의 상태를 제공하는 작업 활동 모니터를 강조하고 싶습니다.
-
==============================
8.이 마지막 실행 상태 / 시간이 표시됩니다 또는 실행하는 경우, 그것은 현재 실행 시간을 표시, 스텝 번호 / 정보, 및 SPID (그것은 SPID를 연결 한 경우). 또한 쇼 /가 해결되지 않은 사용자 계정에 대한 NT SID 형식으로 변환 장애인 직업 사용자 수있었습니다.
이 마지막 실행 상태 / 시간이 표시됩니다 또는 실행하는 경우, 그것은 현재 실행 시간을 표시, 스텝 번호 / 정보, 및 SPID (그것은 SPID를 연결 한 경우). 또한 쇼 /가 해결되지 않은 사용자 계정에 대한 NT SID 형식으로 변환 장애인 직업 사용자 수있었습니다.
CREATE TABLE #list_running_SQL_jobs ( job_id UNIQUEIDENTIFIER NOT NULL , last_run_date INT NOT NULL , last_run_time INT NOT NULL , next_run_date INT NOT NULL , next_run_time INT NOT NULL , next_run_schedule_id INT NOT NULL , requested_to_run INT NOT NULL , request_source INT NOT NULL , request_source_id sysname NULL , running INT NOT NULL , current_step INT NOT NULL , current_retry_attempt INT NOT NULL , job_state INT NOT NULL ); DECLARE @sqluser NVARCHAR(128) , @is_sysadmin INT; SELECT @is_sysadmin = ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0); DECLARE read_sysjobs_for_running CURSOR FOR SELECT DISTINCT SUSER_SNAME(owner_sid)FROM msdb.dbo.sysjobs; OPEN read_sysjobs_for_running; FETCH NEXT FROM read_sysjobs_for_running INTO @sqluser; WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #list_running_SQL_jobs EXECUTE master.dbo.xp_sqlagent_enum_jobs @is_sysadmin, @sqluser; FETCH NEXT FROM read_sysjobs_for_running INTO @sqluser; END; CLOSE read_sysjobs_for_running; DEALLOCATE read_sysjobs_for_running; SELECT j.name , 'Enbld' = CASE j.enabled WHEN 0 THEN 'no' ELSE 'YES' END , '#Min' = DATEDIFF(MINUTE, a.start_execution_date, ISNULL(a.stop_execution_date, GETDATE())) , 'Status' = CASE WHEN a.start_execution_date IS NOT NULL AND a.stop_execution_date IS NULL THEN 'Executing' WHEN h.run_status = 0 THEN 'FAILED' WHEN h.run_status = 2 THEN 'Retry' WHEN h.run_status = 3 THEN 'Canceled' WHEN h.run_status = 4 THEN 'InProg' WHEN h.run_status = 1 THEN 'Success' ELSE 'Idle' END , r.current_step , spid = p.session_id , owner = ISNULL(SUSER_SNAME(j.owner_sid), 'S-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 1))) - CONVERT(BIGINT, 256) * CONVERT(BIGINT, UNICODE(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 1)) / 256)) + '-' + CONVERT(NVARCHAR(12), UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 4), 1)) / 256 + CONVERT(BIGINT, NULLIF(UNICODE(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 1)) / 256, 0)) - CONVERT(BIGINT, UNICODE(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 1)) / 256)) + ISNULL('-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 5), 1))) + CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 6), 1))) * CONVERT(BIGINT, 65536) + CONVERT(BIGINT, NULLIF(SIGN(LEN(CONVERT(NVARCHAR(256), j.owner_sid)) - 6), -1)) * 0), '') + ISNULL('-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 7), 1))) + CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 8), 1))) * CONVERT(BIGINT, 65536) + CONVERT(BIGINT, NULLIF(SIGN(LEN(CONVERT(NVARCHAR(256), j.owner_sid)) - 8), -1)) * 0), '') + ISNULL('-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 9), 1))) + CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 10), 1))) * CONVERT(BIGINT, 65536) + CONVERT(BIGINT, NULLIF(SIGN(LEN(CONVERT(NVARCHAR(256), j.owner_sid)) - 10), -1)) * 0), '') + ISNULL('-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 11), 1))) + CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 12), 1))) * CONVERT(BIGINT, 65536) + CONVERT(BIGINT, NULLIF(SIGN(LEN(CONVERT(NVARCHAR(256), j.owner_sid)) - 12), -1)) * 0), '') + ISNULL('-' + CONVERT(NVARCHAR(12), CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 13), 1))) + CONVERT(BIGINT, UNICODE(RIGHT(LEFT(CONVERT(NVARCHAR(256), j.owner_sid), 14), 1))) * CONVERT(BIGINT, 65536) + CONVERT(BIGINT, NULLIF(SIGN(LEN(CONVERT(NVARCHAR(256), j.owner_sid)) - 14), -1)) * 0), '')) --SHOW as NT SID when unresolved , a.start_execution_date , a.stop_execution_date , t.subsystem , t.step_name FROM msdb.dbo.sysjobs j LEFT OUTER JOIN (SELECT DISTINCT * FROM #list_running_SQL_jobs) r ON j.job_id = r.job_id LEFT OUTER JOIN msdb.dbo.sysjobactivity a ON j.job_id = a.job_id AND a.start_execution_date IS NOT NULL --AND a.stop_execution_date IS NULL AND NOT EXISTS ( SELECT * FROM msdb.dbo.sysjobactivity at WHERE at.job_id = a.job_id AND at.start_execution_date > a.start_execution_date ) LEFT OUTER JOIN sys.dm_exec_sessions p ON p.program_name LIKE 'SQLAgent%0x%' AND j.job_id = SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 7, 2) + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 5, 2) + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 3, 2) + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 1, 2) + '-' + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 11, 2) + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 9, 2) + '-' + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 15, 2) + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 13, 2) + '-' + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 17, 4) + '-' + SUBSTRING(SUBSTRING(p.program_name, CHARINDEX('0x', p.program_name) + 2, 32), 21, 12) LEFT OUTER JOIN msdb.dbo.sysjobhistory h ON j.job_id = h.job_id AND h.instance_id = a.job_history_id LEFT OUTER JOIN msdb.dbo.sysjobsteps t ON t.job_id = j.job_id AND t.step_id = r.current_step ORDER BY 1; DROP TABLE #list_running_SQL_jobs;
-
==============================
9.나는 msdb.dbo.sysjobactivity에 많은 레코드를 보았다하지만 작업 위의 작업 어디 run_Requested_date가 null가 아닌 및 stop_execution_date은 널 (null)입니다 ---- 및 작업이 현재 실행되고 있지 않습니다.
나는 msdb.dbo.sysjobactivity에 많은 레코드를 보았다하지만 작업 위의 작업 어디 run_Requested_date가 null가 아닌 및 stop_execution_date은 널 (null)입니다 ---- 및 작업이 현재 실행되고 있지 않습니다.
나는 (모르겠 음 작업이 시간에 실행되고 있지 확인) 가짜 모든 항목을 삭제하려면 다음 스크립트를 실행 추천 할 것입니다.
SQL 2008 :
delete activity from msdb.dbo.sysjobs_view job inner join msdb.dbo.sysjobactivity activity on job.job_id = activity.job_id where activity.run_Requested_date is not null and activity.stop_execution_date is null
-
==============================
10.실행 올 것이 내 작업의 하나로서 (코드는 위에 나열된 일명) 나는 MSDB 테이블을 쿼리 내 서버 중 하나에 문제로 실행,하지만하지 않았다. 이 시스템 저장 프로 시저가 반환 실행 상태이지만, 하나는 오류없이 간부 문 삽입 할 수 없습니다. 삽입 간부 문을 사용할 수있는 다른 시스템 저장 프로 시저입니다 내부.
실행 올 것이 내 작업의 하나로서 (코드는 위에 나열된 일명) 나는 MSDB 테이블을 쿼리 내 서버 중 하나에 문제로 실행,하지만하지 않았다. 이 시스템 저장 프로 시저가 반환 실행 상태이지만, 하나는 오류없이 간부 문 삽입 할 수 없습니다. 삽입 간부 문을 사용할 수있는 다른 시스템 저장 프로 시저입니다 내부.
INSERT INTO #Job EXEC master.dbo.xp_sqlagent_enum_jobs 1,dbo
그리고 테이블을에로드 :
CREATE TABLE #Job (job_id UNIQUEIDENTIFIER NOT NULL, last_run_date INT NOT NULL, last_run_time INT NOT NULL, next_run_date INT NOT NULL, next_run_time INT NOT NULL, next_run_schedule_id INT NOT NULL, requested_to_run INT NOT NULL, -- BOOL request_source INT NOT NULL, request_source_id sysname COLLATE database_default NULL, running INT NOT NULL, -- BOOL current_step INT NOT NULL, current_retry_attempt INT NOT NULL, job_state INT NOT NULL)
-
==============================
11.
SELECT sj.name FROM msdb..sysjobactivity aj JOIN msdb..sysjobs sj on sj.job_id = aj.job_id WHERE aj.stop_execution_date IS NULL -- job hasn't stopped running AND aj.start_execution_date IS NOT NULL -- job is currently running AND sj.name = '<your Job Name>' AND NOT EXISTS( -- make sure this is the most recent run select 1 from msdb..sysjobactivity new where new.job_id = aj.job_id and new.start_execution_date > aj.start_execution_date ) ) print 'running'
-
==============================
12.내가 찾은 가장 간단한 방법은 저장 프로 시저를 만드는 것이 었습니다. '작업 이름'과 히트 이동을 입력합니다.
내가 찾은 가장 간단한 방법은 저장 프로 시저를 만드는 것이 었습니다. '작업 이름'과 히트 이동을 입력합니다.
/*----------------------------------------------------------------------------------------------------------- Document Title: usp_getJobStatus Purpose: Finds a Current Jobs Run Status Input Example: EXECUTE usp_getJobStatus 'MyJobName' -------------------------------------------------------------------------------------------------------------*/ IF OBJECT_ID ( 'usp_getJobStatus','P' ) IS NOT NULL DROP PROCEDURE usp_getJobStatus; GO CREATE PROCEDURE usp_getJobStatus @JobName NVARCHAR (1000) AS IF OBJECT_ID('TempDB..#JobResults','U') IS NOT NULL DROP TABLE #JobResults CREATE TABLE #JobResults ( Job_ID UNIQUEIDENTIFIER NOT NULL, Last_Run_Date INT NOT NULL, Last_Run_Time INT NOT NULL, Next_Run_date INT NOT NULL, Next_Run_Time INT NOT NULL, Next_Run_Schedule_ID INT NOT NULL, Requested_to_Run INT NOT NULL, Request_Source INT NOT NULL, Request_Source_id SYSNAME COLLATE Database_Default NULL, Running INT NOT NULL, Current_Step INT NOT NULL, Current_Retry_Attempt INT NOT NULL, Job_State INT NOT NULL ) INSERT #JobResults EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, ''; SELECT job.name AS [Job_Name], ( SELECT MAX(CAST( STUFF(STUFF(CAST(jh.run_date AS VARCHAR),7,0,'-'),5,0,'-') + ' ' + STUFF(STUFF(REPLACE(STR(jh.run_time,6,0),' ','0'),5,0,':'),3,0,':') AS DATETIME)) FROM msdb.dbo.sysjobs AS j INNER JOIN msdb.dbo.sysjobhistory AS jh ON jh.job_id = j.job_id AND jh.step_id = 0 WHERE j.[name] LIKE '%' + @JobName + '%' GROUP BY j.[name] ) AS [Last_Completed_DateTime], ( SELECT TOP 1 start_execution_date FROM msdb.dbo.sysjobactivity WHERE job_id = r.job_id ORDER BY start_execution_date DESC ) AS [Job_Start_DateTime], CASE WHEN r.running = 0 THEN CASE WHEN jobInfo.lASt_run_outcome = 0 THEN 'Failed' WHEN jobInfo.lASt_run_outcome = 1 THEN 'Success' WHEN jobInfo.lASt_run_outcome = 3 THEN 'Canceled' ELSE 'Unknown' END WHEN r.job_state = 0 THEN 'Success' WHEN r.job_state = 4 THEN 'Success' WHEN r.job_state = 5 THEN 'Success' WHEN r.job_state = 1 THEN 'In Progress' WHEN r.job_state = 2 THEN 'In Progress' WHEN r.job_state = 3 THEN 'In Progress' WHEN r.job_state = 7 THEN 'In Progress' ELSE 'Unknown' END AS [Run_Status_Description] FROM #JobResults AS r LEFT OUTER JOIN msdb.dbo.sysjobservers AS jobInfo ON r.job_id = jobInfo.job_id INNER JOIN msdb.dbo.sysjobs AS job ON r.job_id = job.job_id WHERE job.[enabled] = 1 AND job.name LIKE '%' + @JobName + '%'
-
==============================
13.
;WITH CTE_JobStatus AS ( SELECT DISTINCT NAME AS [JobName] ,s.step_id ,s.step_name ,CASE WHEN [Enabled] = 1 THEN 'Enabled' ELSE 'Disabled' END [JobStatus] ,CASE WHEN SJH.run_status = 0 THEN 'Failed' WHEN SJH.run_status = 1 THEN 'Succeeded' WHEN SJH.run_status = 2 THEN 'Retry' WHEN SJH.run_status = 3 THEN 'Cancelled' WHEN SJH.run_status = 4 THEN 'In Progress' ELSE 'Unknown' END [JobOutcome] ,CONVERT(VARCHAR(8), sjh.run_date) [RunDate] ,CONVERT(VARCHAR(8), STUFF(STUFF(CONVERT(TIMESTAMP, RIGHT('000000' + CONVERT(VARCHAR(6), sjh.run_time), 6)), 3, 0, ':'), 6, 0, ':')) RunTime ,RANK() OVER ( PARTITION BY s.step_name ORDER BY sjh.run_date DESC ,sjh.run_time DESC ) AS rn ,SJH.run_status FROM msdb..SYSJobs sj INNER JOIN msdb..SYSJobHistory sjh ON sj.job_id = sjh.job_id INNER JOIN msdb.dbo.sysjobsteps s ON sjh.job_id = s.job_id AND sjh.step_id = s.step_id WHERE (sj.NAME LIKE 'JOB NAME') AND sjh.run_date = CONVERT(CHAR, getdate(), 112) ) SELECT * FROM CTE_JobStatus WHERE rn = 1 AND run_status NOT IN (1,4)
from https://stackoverflow.com/questions/200195/how-can-i-determine-the-status-of-a-job by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 열 값이 변경 선택 행 (0) | 2020.05.09 |
---|---|
[SQL] 어떻게 첫번째 COL의 존재 자동 증가와 MySQL의에서 DATA INFILE을로드하려면? (0) | 2020.05.09 |
[SQL] 봄의 JdbcTemplate의 기본 SQL을보고? (0) | 2020.05.09 |
[SQL] MySQL은 : ERROR 1215 (HY000)는 : 외래 키 제약 조건을 추가 할 수 없습니다 (0) | 2020.05.09 |
[SQL] 어떻게 WHERE 절에 SELECT 문으로 SQL DELETE 문을 작성하는? (0) | 2020.05.09 |