TABELA TRUNCADA MySQL

Resumo : neste tutorial, você aprenderá como usar a TRUNCATE TABLE instrução MySQL para excluir todos os dados de uma tabela.

Introdução à instrução MySQL TRUNCATE TABLE

No MySQL, a TRUNCATE TABLEinstrução permite excluir todas as linhas de uma tabela.

Aqui está a sintaxe básica da TRUNCATE TABLEinstrução:

TRUNCATE [TABLE] table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe, você especifica o nome da tabela da qual deseja excluir todas as linhas após as TRUNCATE TABLEpalavras-chave.

A TABLEpalavra-chave é opcional. No entanto, é uma boa prática usar a TABLEpalavra-chave para distinguir entre a TRUNCATE TABLEinstrução e a  TRUNCATE()função.

Se houver alguma FOREIGN KEYrestrição de outras tabelas que façam referência à tabela que você truncou, a TRUNCATE TABLEinstrução falhará.

Como uma operação truncada causa um commit implícito, ela não pode ser revertida. Além disso, a TRUNCATE TABLEinstrução não dispara DELETEgatilhos associados à tabela que está sendo truncada.

A TRUNCATE TABLEinstrução redefine o valor na coluna AUTO_INCREMENT para seu valor inicial se a tabela tiver uma AUTO_INCREMENTcoluna.

Ao contrário de uma DELETEinstrução, o número de linhas afetadas pela TRUNCATE TABLEinstrução é 0, o que deve ser interpretado como nenhuma informação.

Funcionalmente, a TRUNCATE TABLEinstrução é como uma DELETEinstrução sem WHEREcláusula que exclui todas as linhas de uma tabela:

DELETE FROM table_name;

Ou uma sequência de instruções DROP TABLEe CREATE TABLE:

DROP TABLE table_name;

CREATE TABLE table_name (
  /* ... */
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

No entanto, a TRUNCATE TABLEinstrução é mais eficiente que a DELETEinstrução porque descarta e recria a tabela em vez de excluir as linhas uma por uma.

Exemplo de TRUNCATE TABLE MySQL

Vejamos um exemplo de uso da TRUNCATE TABLEinstrução.

Primeiro, crie uma nova tabela com o nome booksda demonstração:

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL
)  ENGINE=INNODB;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em seguida, insira dados fictícios na bookstabela usando o seguinte procedimento armazenado :

DELIMITER $$
CREATE PROCEDURE load_book_data(IN num INT(4))
BEGIN
	DECLARE counter INT(4) DEFAULT 0;
	DECLARE book_title VARCHAR(255) DEFAULT '';

	WHILE counter < num DO
	  SET book_title = CONCAT('Book title #',counter);
	  SET counter = counter + 1;

	  INSERT INTO books(title)
	  VALUES(book_title);
	END WHILE;
END$$

DELIMITER ;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em seguida, carregue 10.000 linhas na bookstabela. Vai demorar algum tempo.

CALL load_book_data(10000);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Depois disso, verifique os dados da bookstabela:

SELECT * FROM books;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Finalmente, use a TRUNCATE TABLEinstrução para excluir todas as linhas da bookstabela:

TRUNCATE TABLE books;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que você pode comparar o desempenho do TRUNCATE TABLEcom a DELETEinstrução.

Resumo

  • Use a TRUNCATE TABLEinstrução para excluir todas as linhas de uma tabela com eficiência.
  • A TRUNCATE TABLEinstrução redefine o AUTO_INCREMENTcontador.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *