Следующий запрос MySQL сам будет вызывать один запрос, который усекает все таблицы в данной базе данных. Он обходит клавиши FOREIGN:
SELECT CONCAT(
'SET FOREIGN_KEY_CHECKS=0; ',
GROUP_CONCAT(dropTableSql SEPARATOR '; '), '; ',
'SET FOREIGN_KEY_CHECKS=1;'
) as dropAllTablesSql
FROM ( SELECT Concat('TRUNCATE TABLE ', table_schema, '.', TABLE_NAME) AS dropTableSql
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'DATABASE_NAME' ) as queries
Вам не хватает переключателя:
<Switch>
<Route path="/someother" component={AppComponent}>
<Route path="/products" component={ListProductComponent} />
<Route path="/" component={AppComponent}>
</Switch>
Кроме того, ваш код будет отображать только AppComponent, так как любой URL (/
, /home
, /etc
) начинается с косой черты, которую вы поставили в атрибуте path
. Вы могли бы хотеть это как последняя страница, запасной вариант.
Атрибут path
работает с подстановочным символом: path="/"
-> path="/**"
функционально одинаковы. Если вы хотите точный путь, добавьте exact
к Маршруту.
Если вы хотите разделить маршруты на отдельные файлы, вы можете сделать это:
<Switch>
<Route path={"/user"} component={UserRouter}/>
<Route path={"/product"} component={ProductRouter}/>
</Switch>
// In userRouter.jsx:
export function UserRouter() {
return <Switch>
<Route exact path={"/user/list"} component={UserListPage}/>
<Route exact path={"/user/signup"} component={userSignupPage}/>
<Route exact path={"/user/profile"} component={UserProfilePage}/>
</Switch>
};