Interior Minister Milan Chovanec said eight people had been killed in the rampage at the "Friendship" restaurant in the town of Uhersky Brod and that the gunman was also dead.
The motive for the shooting was not immediately known although there was no indication from police that it was a terrorist act.
Nerves are running high in Europe after the deadly Islamist attacks in Paris in January that left 17 people dead, and the Copenhagen shootings earlier this month that claimed two lives.
The mayor described the gunman as a resident of the town aged in his 60s, saying he had possible mental health issues.
Kuncar said around 25 shots were heard in the in the Droujba ("Friendship") restaurant in the town centre while around 20 customers were inside.
Police said several people had also been wounded, including a woman hospitalised in a critical condition.
"I'm rattled by this event. I never would have imagined something like this happening here, in a restaurant that I know well," Kuncar told state television Ceska Televize (CT).
