나는 수백 개의 테이블을 가진 MySQL 데이터베이스를 가지고 있습니다.SQL - 열 값을 기반으로 모든 테이블의 행을 삭제하십시오.
'companyId'라는 공통 열에 기반하여 모든 테이블의 레코드를 삭제해야합니다.이 열은 데이터베이스의 모든 테이블에 있습니다.
columnId = somenumber 인 모든 테이블에서 모든 레코드를 어떻게 삭제할 수 있습니까?
미리 감사드립니다.
이바노 C.
@SocratesG 나는 당신의 저장 프로 시저를 시도했지만 나는 SP 생성 아래를 얻을 :
ERROR 1064 : 당신은 당신의 SQL 구문에 오류가 있습니다; '@TableName VARCHAR (128); 근처에서 사용할 올바른 구문에 대해서는 해당 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.
DECLARE @MyColumn VARCHAR (128);
SET @MyColumn = '회사의'선에서 4
SQL 문 :
프로 deletePortalInstance
을 (만들기)
DECLARE의 @tablename VARCHAR (128) BEGIN;
DECLARE @MyColumn VARCHAR (128);
SET의 @MyColumn는 =
(FOR '회사 ID'
DECLARE의 MyCursor 커서 OBJECT_NAME (c를 선택한다.
FROM dbo.syscolumns c
WHERE
OBJECTPROPERTY(c.id,'ISTABLE') = 1 --Search for tables only
AND c.name = @MyColumn)
이 OPEN MyCursor가
가 @tablename에 MyCursor FROM NEXT FETCH ObjectName처럼 ID)
WHILE @@ FETCH_STATUS 0 =
BEGIN
EXEC
(
'DELETE ' + @MyColumn
+' FROM ' + @TableName
+' WHERE ' + @MyColumn + ' = 906454'
)
FETCH NEXT FROM MyCursor into @TableName
END
CLOSE MyCursor
DEALLOCATE MyCursor
END
ERROR 1064 : 당신은 당신의 SQL 구문에 오류가 있습니다; '@TableName VARCHAR (128); 근처에서 사용할 올바른 구문에 대해서는 해당 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.
DECLARE @MyColumn VARCHAR (128);
SET @MyColumn = '회사의'선에서 4
SQL 문 :
프로 deletePortalInstance
을 (만들기)
DECLARE의 @tablename VARCHAR (128) BEGIN;
DECLARE @MyColumn VARCHAR (128);
SET의 @MyColumn는 =
(FOR '회사 ID'
DECLARE의 MyCursor 커서 OBJECT_NAME (c를 선택한다.
FROM dbo.syscolumns c
WHERE
OBJECTPROPERTY(c.id,'ISTABLE') = 1 --Search for tables only
AND c.name = @MyColumn)
이 OPEN MyCursor가
가 @tablename에 MyCursor FROM NEXT FETCH ObjectName처럼 ID)
WHILE @@ FETCH_STATUS 0 =
BEGIN
EXEC
(
'DELETE ' + @MyColumn
+' FROM ' + @TableName
+' WHERE ' + @MyColumn + ' = 906454'
)
FETCH NEXT FROM MyCursor into @TableName
END
CLOSE MyCursor
DEALLOCATE MyCursor
END
설정 테이블을 시도 할 수 있습니다! – jarlh