The 34-year-old man, identified as an Iraqi national, “was critically injured in a shootout with police officers as he left the disco, and later succumbed to his wounds in hospital,” police said in a statement.
“Investigations are ongoing into the background of the act, which was likely linked to a dispute in the attacker's personal life. There are no indications of a terror act,” police added.
The foreign gunman was not an asylum seeker and has been living in the Constance region, which borders Switzerland, for 15 years.
Officers began receiving emergency calls from terrified clubbers at around 4:30 am (0230 GMT) as the man began shooting in the nightclub heaving with “several hundred” people, said police.
One person was killed on the spot and three others seriously wounded in the club called “Grey”, located in an industrial zone of the city, which draws Swiss revellers during the weekends.
Shortly after the gunman left the building, he was shot by police. One officer was also injured in the exchange of fire.
Frightened revellers had either fled the building or found a place to hide, police said, adding that the danger was now over.
Helicopters were circling overhead and special forces were also deployed to secure the site.
'Club was jam-packed'
A witness told national news agency DPA that the attacker was shooting randomly at clubbers around him.
“The club was jam-packed,” added the unnamed man, who said he had seen the attacker and fled quickly with his friends.
Another unnamed clubber was quoted by Suedkurier daily that he was in the washroom when someone came in and closed the toilet door saying there was shooting.
“I didn't believe it and went out. But I heard shots and quickly ran back to the toilet and closed the door with another person. With us was a bouncer who was shot and he was bandaging the wound with a belt,” said the witness.
A bartender then opened the emergency exit door, allowing revellers to flee, he said, adding that he saw another person with a wound in the leg lying on the grass by the parking lot.
“I just shouted at everyone to run and when we were in the parking lot, we heard shots again,” he said.
Police was unable to confirm the type of weapon used, but Bezikofer said it was “not just a pistol, the talk is of a long weapon or an automatic pistol”.
The shooting came just two days after Germany was shaken by a knife attack in the northern port city of Hamburg.
A 26-year-old Palestinian had killed one and injured six in an assault at a supermarket.
He was a known Islamist with psychological problems, and investigators say his motives remain unclear.
Germany has been on high alert about the threat of a jihadist attack, especially since last December's truck rampage through a Berlin Christmas market that claimed 12 lives.
But it has also been hit by other assaults unrelated to the jihadist threat.
Among the deadliest in recent years is a Munich shopping mall rampage last June by 18-year-old German-Iranian man which left 10 people dead including the gunman himself.