How can I delete the contents of all tables in my database in phpMyAdmin without dropping the database?

后端 未结 10 1392
予麋鹿
予麋鹿 2021-02-13 03:32

How can I empty the contents of all tables in my database in phpMyAdmin without dropping any of the tables in the database?

Since I do this several times an hour while i

相关标签:
10条回答
  • 2021-02-13 03:57

    you could start with this query

    SELECT T.*
    FROM INFORMATION_SCHEMA.tables T
    WHERE T.table_type = 'BASE TABLE'
    

    And iterate through those results to build a dynamic SQL string to the tune of 'DELETE FROM ' + T.Table_Name

    0 讨论(0)
  • 2021-02-13 03:58

    We can truncate all tables data by phpMyAdmin actually!

    In phpMyAdmin, you can do it as following steps:

    1) select u DB and do Export operation as this way:

    select Custom Export method

    • select 'Dump Table -> data' in Format-specific options
    • select 'Add DROP TABLE ... statement' in Object Creation Options.

    By this step, phpMyAdmin helps us create one sql script of full list of all tables

    3) do Import operation to delete and create each blank table one by one by this script

    enter image description here

    0 讨论(0)
  • 2021-02-13 03:59
    drop procedure if exists truncate_tables;
    
    delimiter #
    create procedure truncate_tables()
    begin
     declare tab_name varchar(64);
     declare done tinyint unsigned default 0;
    
     declare table_cur cursor for select t.table_name
     from 
      information_schema.schemata s
      inner join information_schema.tables t on s.schema_name = t.table_schema
     where
       s.schema_name = database() and t.table_type = 'BASE TABLE';
    
     declare continue handler for not found set done = 1;
    
     open table_cur;
     repeat
       fetch table_cur into tab_name;
       set @cmd = concat('truncate table ', tab_name);
    
       prepare stmt from @cmd;
       execute stmt;
     until done end repeat;
    
     close table_cur;
    end #
    
    0 讨论(0)
  • 2021-02-13 04:00

    The TRUNCATE TABLE statement will empty a table completely (MySql 3.23 and above).

    You can create a script that you can reuse for a particular database. It's not generic but saves you from creating a new database + login each time you want to start with a fresh db.

    Here's how to create a script yourself: In your webbrowser go to phpMyAdmin and select the database. Click the SQL tab and execute 'SHOW TABLES'. Choose the printerfriendly format and copy the contents to a text editor.

    Now for each table name you re-write it in the format:

    TRUNCATE TABLE <tablename>;
    

    note: You can use a regular expression if you have many tables

    0 讨论(0)
提交回复
热议问题